diff options
Diffstat (limited to 'fs/sdfat/mpage.c')
| -rw-r--r-- | fs/sdfat/mpage.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/fs/sdfat/mpage.c b/fs/sdfat/mpage.c index 8a0ce7f89..b39858258 100644 --- a/fs/sdfat/mpage.c +++ b/fs/sdfat/mpage.c @@ -94,7 +94,11 @@ static inline void __sdfat_submit_bio_write2(int flags, struct bio *bio) #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) static void mpage_write_end_io(struct bio *bio) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) + __mpage_write_end_io(bio, bio->bi_status); +#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0) */ __mpage_write_end_io(bio, bio->bi_error); +#endif } #else /* LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0) */ static void mpage_write_end_io(struct bio *bio, int err) @@ -277,7 +281,11 @@ mpage_alloc(struct block_device *bdev, } if (bio) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) + bio_set_dev(bio, bdev); +#else bio->bi_bdev = bdev; +#endif __sdfat_set_bio_sector(bio, first_sector); } return bio; @@ -361,7 +369,11 @@ static int sdfat_mpage_writepage(struct page *page, if (buffer_new(bh)) { clear_buffer_new(bh); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) + clean_bdev_bh_alias(bh); +#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0) */ unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); +#endif } } @@ -411,8 +423,12 @@ static int sdfat_mpage_writepage(struct page *page, goto confused; if (buffer_new(&map_bh)) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) + clean_bdev_bh_alias(&map_bh); +#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0) */ unmap_underlying_metadata(map_bh.b_bdev, map_bh.b_blocknr); +#endif if (buffer_boundary(&map_bh)) { boundary_block = map_bh.b_blocknr; boundary_bdev = map_bh.b_bdev; @@ -604,4 +620,3 @@ int sdfat_mpage_writepages(struct address_space *mapping, } #endif /* CONFIG_SDFAT_ALIGNED_MPAGE_WRITE */ - |
