diff --git a/block/blk-map.c b/block/blk-map.c index ede73f4f70147eec51e7c89ed48a6534c19eef99..1982e65989a49adec331d37d4d6a8e1e10a18f2f 100644 --- a/block/blk-map.c +++ b/block/blk-map.c @@ -283,12 +283,11 @@ static int bio_map_user_iov(struct request *rq, struct iov_iter *iter, n = bytes; if (!bio_add_hw_page(rq->q, bio, page, n, offs, - max_sectors, &same_page)) { - if (same_page) - put_page(page); + max_sectors, &same_page)) break; - } + if (same_page) + put_page(page); added += n; bytes -= n; offs = 0;