From 3c0a68279046b6f0fb144d0fbdf821fd2266159a Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 19 Dec 2006 11:07:59 +0100 Subject: [PATCH] --- yaml --- r: 44843 b: refs/heads/master c: 48785bb9fa39415d7553e234946442579dfcf591 h: refs/heads/master i: 44841: 1e0113275f1471fd1dac7078ed37115e7b27052d 44839: 17b1774712a3ed31637d750987b36611d6dc83c5 v: v3 --- [refs] | 2 +- trunk/block/ll_rw_blk.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5edeb2bd5369..65f059e10c6d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9c9381f9425ab4d2f9f0458ae9525c18bc832f59 +refs/heads/master: 48785bb9fa39415d7553e234946442579dfcf591 diff --git a/trunk/block/ll_rw_blk.c b/trunk/block/ll_rw_blk.c index 5d472e47c125..a66ec30855d8 100644 --- a/trunk/block/ll_rw_blk.c +++ b/trunk/block/ll_rw_blk.c @@ -2504,6 +2504,7 @@ EXPORT_SYMBOL(blk_rq_map_user_iov); int blk_rq_unmap_user(struct request *rq) { struct bio *bio, *mapped_bio; + int ret = 0, ret2; while ((bio = rq->bio)) { if (bio_flagged(bio, BIO_BOUNCED)) @@ -2511,11 +2512,15 @@ int blk_rq_unmap_user(struct request *rq) else mapped_bio = bio; - __blk_rq_unmap_user(mapped_bio); + ret2 = __blk_rq_unmap_user(mapped_bio); + if (ret2 && !ret) + ret = ret2; + rq->bio = bio->bi_next; bio_put(bio); } - return 0; + + return ret; } EXPORT_SYMBOL(blk_rq_unmap_user);