Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[deliverable/linux.git] / fs / mpage.c
index 3e79220babac28383c5c68cdb3580378d3324bcc..778a4ddef77a21844b08af82058d3b188371dc01 100644 (file)
  * status of that page is hard.  See end_buffer_async_read() for the details.
  * There is no point in duplicating all that complexity.
  */
-static void mpage_end_io(struct bio *bio, int err)
+static void mpage_end_io(struct bio *bio)
 {
        struct bio_vec *bv;
        int i;
 
        bio_for_each_segment_all(bv, bio, i) {
                struct page *page = bv->bv_page;
-               page_endio(page, bio_data_dir(bio), err);
+               page_endio(page, bio_data_dir(bio), bio->bi_error);
        }
 
        bio_put(bio);
@@ -277,7 +277,7 @@ alloc_new:
                                goto out;
                }
                bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9),
-                               min_t(int, nr_pages, bio_get_nr_vecs(bdev)),
+                               min_t(int, nr_pages, BIO_MAX_PAGES),
                                GFP_KERNEL);
                if (bio == NULL)
                        goto confused;
@@ -602,9 +602,11 @@ alloc_new:
                        }
                }
                bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9),
-                               bio_get_nr_vecs(bdev), GFP_NOFS|__GFP_HIGH);
+                               BIO_MAX_PAGES, GFP_NOFS|__GFP_HIGH);
                if (bio == NULL)
                        goto confused;
+
+               wbc_init_bio(wbc, bio);
        }
 
        /*
@@ -612,6 +614,7 @@ alloc_new:
         * the confused fail path above (OOM) will be very confused when
         * it finds all bh marked clean (i.e. it will not write anything)
         */
+       wbc_account_io(wbc, page, PAGE_SIZE);
        length = first_unmapped << blkbits;
        if (bio_add_page(bio, page, length, 0) < length) {
                bio = mpage_bio_submit(WRITE, bio);
This page took 0.025633 seconds and 5 git commands to generate.