]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/bio.c
blkdev: fix merge_bvec_fn return value checks
[net-next-2.6.git] / fs / bio.c
index dc17afd672e354810d4b7b2d54e21d466bf8cca8..0bda289f86fc265e49faf5d646eee47c4b9b1f07 100644 (file)
--- 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;