blkdev: fix merge_bvec_fn return value checks v2

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Friday, April 9, 2010 - 11:59 am

Gitweb:     http://git.kernel.org/linus/8bf8c376ab2eefaf0386f4e003e720e1434fa43d
Commit:     8bf8c376ab2eefaf0386f4e003e720e1434fa43d
Parent:     25cf84cf377c0aae5dbcf937ea89bc7893db5176
Author:     Dmitry Monakhov <dmonakhov@openvz.org>
AuthorDate: Wed Mar 3 06:28:06 2010 +0300
Committer:  Jens Axboe <jens.axboe@oracle.com>
CommitDate: Mon Mar 8 09:10:38 2010 +0100

    blkdev: fix merge_bvec_fn return value checks v2
    
    merge_bvec_fn() returns bvec->bv_len on success. So we have to check
    against this value. But in case of fs_optimization merge we compare
    with wrong value. This patch must be included in
     b428cd6da7e6559aca69aa2e3a526037d3f20403
    But accidentally i've forgot to add this in the initial patch.
    To make things straight let's replace all such checks.
    In fact this makes code easy to understand.
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
---
 fs/bio.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/bio.c b/fs/bio.c
index dc17afd..d89e019 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -555,7 +555,7 @@ static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page
 					.bi_rw = bio->bi_rw,
 				};
 
-				if (q->merge_bvec_fn(q, &bvm, prev) < len) {
+				if (q->merge_bvec_fn(q, &bvm, prev) < prev->bv_len) {
 					prev->bv_len -= len;
 					return 0;
 				}
@@ -608,7 +608,7 @@ static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page
 		 * merge_bvec_fn() returns number of bytes it can accept
 		 * at this offset
 		 */
-		if (q->merge_bvec_fn(q, &bvm, bvec) < len) {
+		if (q->merge_bvec_fn(q, &bvm, bvec) < bvec->bv_len) {
 			bvec->bv_page = NULL;
 			bvec->bv_len = 0;
 			bvec->bv_offset = 0;
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
blkdev: fix merge_bvec_fn return value checks v2, Linux Kernel Mailing ..., (Fri Apr 9, 11:59 am)