These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / mm / page_io.c
index 6424869..b995a5b 100644 (file)
@@ -33,22 +33,19 @@ static struct bio *get_swap_bio(gfp_t gfp_flags,
        if (bio) {
                bio->bi_iter.bi_sector = map_swap_page(page, &bio->bi_bdev);
                bio->bi_iter.bi_sector <<= PAGE_SHIFT - 9;
-               bio->bi_io_vec[0].bv_page = page;
-               bio->bi_io_vec[0].bv_len = PAGE_SIZE;
-               bio->bi_io_vec[0].bv_offset = 0;
-               bio->bi_vcnt = 1;
-               bio->bi_iter.bi_size = PAGE_SIZE;
                bio->bi_end_io = end_io;
+
+               bio_add_page(bio, page, PAGE_SIZE, 0);
+               BUG_ON(bio->bi_iter.bi_size != PAGE_SIZE);
        }
        return bio;
 }
 
-void end_swap_bio_write(struct bio *bio, int err)
+void end_swap_bio_write(struct bio *bio)
 {
-       const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
        struct page *page = bio->bi_io_vec[0].bv_page;
 
-       if (!uptodate) {
+       if (bio->bi_error) {
                SetPageError(page);
                /*
                 * We failed to write the page out to swap-space.
@@ -69,12 +66,11 @@ void end_swap_bio_write(struct bio *bio, int err)
        bio_put(bio);
 }
 
-void end_swap_bio_read(struct bio *bio, int err)
+static void end_swap_bio_read(struct bio *bio)
 {
-       const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
        struct page *page = bio->bi_io_vec[0].bv_page;
 
-       if (!uptodate) {
+       if (bio->bi_error) {
                SetPageError(page);
                ClearPageUptodate(page);
                printk(KERN_ALERT "Read-error on swap-device (%u:%u:%Lu)\n",
@@ -254,7 +250,7 @@ static sector_t swap_page_sector(struct page *page)
 }
 
 int __swap_writepage(struct page *page, struct writeback_control *wbc,
-       void (*end_write_func)(struct bio *, int))
+               bio_end_io_t end_write_func)
 {
        struct bio *bio;
        int ret, rw = WRITE;