[SCSI] sg: fix bio leak with a detached device
After blk_rq_map_user is successful, if we find that a device is unavailable (was detached), we must call blk_end_request_all to free bio(s) before blk_rq_unmap_user and blk_put_request. Reported-by: "Dailey, Nate" <Nate.Dailey@stratus.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Tested-by: "Dailey, Nate" <Nate.Dailey@stratus.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
240778e821
commit
caf19d3860
|
@ -729,6 +729,8 @@ sg_common_write(Sg_fd * sfp, Sg_request * srp,
|
|||
return k; /* probably out of space --> ENOMEM */
|
||||
}
|
||||
if (sdp->detached) {
|
||||
if (srp->bio)
|
||||
blk_end_request_all(srp->rq, -EIO);
|
||||
sg_finish_rem_req(srp);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue