Commit 2476b4d0 authored by James Bottomley's avatar James Bottomley

[SCSI] fix locking in host use of blk_plug_device()

scsi_lib.c:scsi_host_queue_ready() plugs the device with incorrect
locking.  It should actually have the queue lock held, but it's
holding the host lock.  Fix this by eliminating the call.  The host
ready has no need to plug the queue because if it returns 0 in
scsi_request_function control transfers to not_ready which acquires
the queue lock and plugs the device if its at zero depth.
Reported-by: default avatarElias Oltmanns <eo@nebensachen.de>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 92c299d1
...@@ -1328,7 +1328,6 @@ static inline int scsi_host_queue_ready(struct request_queue *q, ...@@ -1328,7 +1328,6 @@ static inline int scsi_host_queue_ready(struct request_queue *q,
printk("scsi%d unblocking host at zero depth\n", printk("scsi%d unblocking host at zero depth\n",
shost->host_no)); shost->host_no));
} else { } else {
blk_plug_device(q);
return 0; return 0;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment