Received: by 10.223.185.116 with SMTP id b49csp4985164wrg; Wed, 7 Mar 2018 04:35:52 -0800 (PST) X-Google-Smtp-Source: AG47ELsfJ67+NbeR+G3sCzCucMyXfcFS7vFEatCHJoVwmZFCDi/7zHM8yWwzDDb8RFC5I1NfxRhl X-Received: by 10.98.237.12 with SMTP id u12mr22324849pfh.72.1520426152248; Wed, 07 Mar 2018 04:35:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520426152; cv=none; d=google.com; s=arc-20160816; b=Cfdd5NzNzW11EOOYi7MlC5Uqp40E4/04ygDX+ZZgslWAR1JG3WTZNR1t4RNRsed1ie y/tU1JgYhVyszWvVea89d2jjfLqNnWAAyXYR6oViE2NWDrG+mUzeR3hD3AC7Q8WuURjs GqGZjwJxQ7O6LDBhCMymcMvjd+OZpvOBaZY1hi5b69EXH33y8SW1G2keKtET7sw1Cx4H P1fFyvQ4cAF6zesJAYpS6rn4HpUFxyA44ANtIzZL+8zs0SNDZHauVUk14lo8a7XztlMB VbuIpLkeUAp2E7E0vDB0ESRN1vm56o2BaiPK+iqtbmCKe0Hx0SDdO4HJELEqArTB5iCQ S8xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=McJ75zyxX+J4y1pN2zFRWSodSmB4T2+sDoU/4Qao9Vk=; b=H3eF7Tv5XFX/CSi9F1EOd0PWO8nbgE9scV0mSzjnLCB0xdlf1uOiMivznaIlLixhNj yfom7xrb5xp93Pcs1ueVGYtaEQzIH49ZWoJ0DPnrBChfNJe49S4y7kbyLCsLymiwcU5+ 6Sn2PsC/YVgP5w4IajOWYkclPRR9ThRPajhNTQOFVq5ucrLnW77I967Cl6ParEdhuOwT lAUGRPSJnhGRe+wkGcYDuIhKxaM0xh9knxlvP3fxbPSrMsesWHIFWe80dkS5WfR/P3/b eXwhO6+8rjE+TbxCdTfr1Mtje0yKmQIaQ4tItWYvRO75F4NB3OiKtgPpGXYS2AxSF9y4 YuHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=Gcyqk9Lu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p10si11351764pgc.74.2018.03.07.04.35.37; Wed, 07 Mar 2018 04:35:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=Gcyqk9Lu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753979AbeCGMdz (ORCPT + 99 others); Wed, 7 Mar 2018 07:33:55 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:36760 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751067AbeCGMdu (ORCPT ); Wed, 7 Mar 2018 07:33:50 -0500 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w27CWGfB070467; Wed, 7 Mar 2018 12:33:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id; s=corp-2017-10-26; bh=McJ75zyxX+J4y1pN2zFRWSodSmB4T2+sDoU/4Qao9Vk=; b=Gcyqk9Lu/dHunZ+8XHtc9lNujRArKoLXdHvj/mmAPuzi+uqr8bsGiwxNjmvAOxx0q55o 0Yiagmf3ZQcuA0g5CGOYsia9wY3V1ttgBNd+oTx3UvNjrOG91DL1NDmiSk9lJw9YQ45h /aG+ViHBhYb8jmUKLSpyQORgjG2MgkGPTsTWuZxE57cNK99EbMA2tgbDHRE4+qHHwwUm U1/mK2sVbsU06n4eLGiMk4GWeeSkh+UgfPpDUYf5D2rjHsF5yvMjY+MmcTUO1brTDGVR 5KjeoqsKAJaRn7klQCeUh4kJe3uQAojtvicJOXnDQqg7ojqduG2soWzW3PawCGGzg4HI Kg== Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp2120.oracle.com with ESMTP id 2gjg0r01s0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 07 Mar 2018 12:33:43 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w27CSgh6008567 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 7 Mar 2018 12:28:42 GMT Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w27CSgXR029412; Wed, 7 Mar 2018 12:28:42 GMT Received: from will-ThinkCentre-M910s.cn.oracle.com (/10.182.70.254) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 07 Mar 2018 04:28:41 -0800 From: Jianchao Wang To: lduncan@suse.com, cleech@redhat.com, jejb@linux.vnet.ibm.com, martin.petersen@oracle.com Cc: open-iscsi@googlegroups.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] scsi: iscsi_tcp: set BDI_CAP_STABLE_WRITES when data digest enabled Date: Wed, 7 Mar 2018 20:29:03 +0800 Message-Id: <1520425743-1923-1-git-send-email-jianchao.w.wang@oracle.com> X-Mailer: git-send-email 2.7.4 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8824 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1803070146 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org iscsi tcp will first send out data, then calculate and send data digest. If we don't have BDI_CAP_STABLE_WRITES, the page cache will be written in spite of the on going writeback. Consequently, wrong digest will be got and sent to target. To fix this, set BDI_CAP_STABLE_WRITES when data digest is enabled in iscsi_tcp .slave_configure callback. Signed-off-by: Jianchao Wang --- drivers/scsi/iscsi_tcp.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 6198559..261c686 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -954,6 +955,12 @@ static int iscsi_sw_tcp_slave_alloc(struct scsi_device *sdev) static int iscsi_sw_tcp_slave_configure(struct scsi_device *sdev) { + struct iscsi_sw_tcp_host *tcp_sw_host = iscsi_host_priv(sdev->host); + struct iscsi_session *session = tcp_sw_host->session; + struct iscsi_conn *conn = session->leadconn; + + if (conn->datadgst_en) + sdev->request_queue->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; blk_queue_bounce_limit(sdev->request_queue, BLK_BOUNCE_ANY); blk_queue_dma_alignment(sdev->request_queue, 0); return 0; -- 2.7.4