Received: by 10.223.185.116 with SMTP id b49csp5936978wrg; Wed, 28 Feb 2018 00:56:03 -0800 (PST) X-Google-Smtp-Source: AH8x227FoRrr63PrcC3ua8lsMRiLcuixPMDy6wt0vJXgRqMUV5hun2Wtg/Fqs6vBMrHfHgM2GfaY X-Received: by 2002:a17:902:aa83:: with SMTP id d3-v6mr17045189plr.36.1519808163077; Wed, 28 Feb 2018 00:56:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519808163; cv=none; d=google.com; s=arc-20160816; b=S0Srk3KduEUTTcT/kGxDoUy9/P8CENokM6JehPoF6vkmkU06UkZoGvi2aoO9HOHCFg nKtKEnhfpuecG+pUnUn9owYmGRUddE1r2fep5Jcs7M+FfYB/rokU7LztERqMnfpECtX+ WIm6WLBgL0V3qXUKHZyKmcIYhBnri2Zs92HQD9u39ascDgoWdL8hWrhHX0BlFcQ9TNWi bo6vbRZiWZkSIkaBIUy3qwAluLfSrp1w/TsYIFzG02Rk3/reToD204UPjNCS88X+M8AG 1O/SOAgq6o7abEDkZtWhm2AoaCVkuxVgOCyKhHvReovM6XjBL7XDLXwUjC2IO4n5Sv+8 kthQ== 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=rAQpU340jfKE9vqifpJp02MfBATB/JKw8lY+3pujR7A=; b=v67OCzRzkRHzYwmadCLXaozoNU846UP0n+vjMsqgbHBapZfU53zdXP106zyZhLE9TH uhGhSdIYrMLvAngpLXXGQ5uc3jAlN47imad+4ws/5FlVVw8imqsUx3ICNm20QZYswpee yB/rkhtiQECHnLfsW5/3if1PFi6xRLi5ISCwQlDxdTtFeFq5lz1s+3gkOzeGciLihzUC 4c8m4w2HbOo33Bu1ARG9xzEO/6xm58PK3oJwQ1aI96gqk9eU42P70VKTckxvYJ94OVBf yWMTYgEqz0gngb8OQG9cHwzF+t1liqCYI2LA7AO4Rj0F4PHHTmU/NA80TOUnLRPJO3nU aigw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=JhKuEhFa; 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 f11-v6si965015plj.470.2018.02.28.00.55.46; Wed, 28 Feb 2018 00:56:03 -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=JhKuEhFa; 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 S1752009AbeB1IzF (ORCPT + 99 others); Wed, 28 Feb 2018 03:55:05 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:47368 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751617AbeB1IzD (ORCPT ); Wed, 28 Feb 2018 03:55:03 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w1S8sviv164186; Wed, 28 Feb 2018 08:54:59 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=rAQpU340jfKE9vqifpJp02MfBATB/JKw8lY+3pujR7A=; b=JhKuEhFapLw+I/JPyGmKKHkNKqHNYPN+qhxWhC0MB+CJS4B7O/tJhUgjpplH2xZ7jJmV Mx9OrGSHaqwRuLrmnwpVVTAl3CgonwFpqerAN5qf2cSjuzi25S/Q2otuwEgGUAIedvD+ M4kJoZYk7fDzrUagLAnIpwL8WAKAoyZ6Qj5KegBAIM9DXZZZDt1FggkUAbJnQH2guLYT aQ4av3Sp7c4gHCH/Imsdz65vJ12Jer8/8sfP+V6vW7B3FpQ3WpHVwaTNAHa6F3WE1KQZ CrFKDxOZDWTWv7N7HUC5vbA5utDWslaDvGjfW3iY7PzhP53W82f170azaib1NVWJKmAF nw== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by userp2130.oracle.com with ESMTP id 2gdqgvrdtb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Feb 2018 08:54:58 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w1S8svmg007792 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 28 Feb 2018 08:54:58 GMT Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w1S8svim012355; Wed, 28 Feb 2018 08:54:57 GMT Received: from will-ThinkCentre-M910s.cn.oracle.com (/10.182.70.254) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 28 Feb 2018 00:54:56 -0800 From: Jianchao Wang To: jejb@linux.vnet.ibm.com, martin.petersen@oracle.com Cc: Bart.VanAssche@wdc.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Christoph Hellwig Subject: [PATCH V2] scsi: core: use blk_mq_requeue_request in __scsi_queue_insert Date: Wed, 28 Feb 2018 16:55:13 +0800 Message-Id: <1519808113-2863-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=8817 signatures=668681 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-1802280108 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In scsi core, __scsi_queue_insert should just put request back on the queue and retry using the same command as before. However, for blk-mq, scsi_mq_requeue_cmd is employed here which will unprepare the request. To align with the semantics of __scsi_queue_insert, use blk_mq_requeue_request with kick_requeue_list == true and put the reference of scsi_device. V1 -> V2: - add put_device on scsi_device->sdev_gendev Cc: Christoph Hellwig Signed-off-by: Jianchao Wang --- drivers/scsi/scsi_lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index a86df9c..6fa7b0c 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -191,7 +191,8 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, bool unbusy) */ cmd->result = 0; if (q->mq_ops) { - scsi_mq_requeue_cmd(cmd); + blk_mq_requeue_request(cmd->request, true); + put_device(&device->sdev_gendev); return; } spin_lock_irqsave(q->queue_lock, flags); -- 2.7.4