Message ID | 1493022396-107620-1-git-send-email-hare@suse.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Mon, Apr 24, 2017 at 10:26:36AM +0200, Hannes Reinecke wrote: > Once the reserved page array is unused we can reset the > 'res_in_use' state; here we can do a lazy update without > holding the mutex as we only need to check against > concurrent access, not concurrent release. > > Fixes: 1bc0eb0 ("scsi: sg: protect accesses to 'reserved' page array") > Signed-off-by: Hannes Reinecke <hare@suse.com> > --- Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Looks fine,
Reviewed-by: Christoph Hellwig <hch@lst.de>
Hannes, > Once the reserved page array is unused we can reset the 'res_in_use' > state; here we can do a lazy update without holding the mutex as we > only need to check against concurrent access, not concurrent release. Applied to 4.12/scsi-queue.
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 8147147..06503c1 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -2056,6 +2056,8 @@ static long sg_compat_ioctl(struct file *filp, unsigned int cmd_in, unsigned lon req_schp->page_order = 0; req_schp->sglist_len = 0; srp->res_used = 0; + /* Called without mutex lock to avoid deadlock */ + sfp->res_in_use = 0; } static Sg_request *
Once the reserved page array is unused we can reset the 'res_in_use' state; here we can do a lazy update without holding the mutex as we only need to check against concurrent access, not concurrent release. Fixes: 1bc0eb0 ("scsi: sg: protect accesses to 'reserved' page array") Signed-off-by: Hannes Reinecke <hare@suse.com> --- drivers/scsi/sg.c | 2 ++ 1 file changed, 2 insertions(+)