Eliminate a get_device() / put_device() pair from scsi_next_command().
Both are atomic operations hence removing these slightly improves
performance.

[hch: slight changes due to different context]

Signed-off-by: Bart Van Assche <bvanass...@acm.org>
Acked-by: Hannes Reinecke <h...@suse.de>
Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 drivers/scsi/scsi_lib.c |    5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index a6d5525..6866943 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -526,14 +526,9 @@ void scsi_next_command(struct scsi_cmnd *cmd)
        struct scsi_device *sdev = cmd->device;
        struct request_queue *q = sdev->request_queue;
 
-       /* need to hold a reference on the device before we let go of the cmd */
-       get_device(&sdev->sdev_gendev);
-
        scsi_put_command(cmd);
-       put_device(&sdev->sdev_gendev);
        scsi_run_queue(q);
 
-       /* ok to remove device now */
        put_device(&sdev->sdev_gendev);
 }
 
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to