diff --git a/[refs] b/[refs] index db4768cd3b9f..c10ad7f6952d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d6ceb25e8d8bccf826848c2621a50d02c0a7f4ae +refs/heads/master: 91e463c8f5f7a5b09d3d034c01a88567af60c504 diff --git a/trunk/block/scsi_ioctl.c b/trunk/block/scsi_ioctl.c index 626ee274c5c4..84b7f8709f41 100644 --- a/trunk/block/scsi_ioctl.c +++ b/trunk/block/scsi_ioctl.c @@ -217,7 +217,7 @@ static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq, static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr, struct bio *bio) { - int ret = 0; + int r, ret = 0; /* * fill in all the output members @@ -242,7 +242,9 @@ static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr, ret = -EFAULT; } - blk_rq_unmap_user(bio); + r = blk_rq_unmap_user(bio); + if (!ret) + ret = r; blk_put_request(rq); return ret;