diff --git a/fs/buffer.c b/fs/buffer.c index e442a26e80f7..7bd5c4685e98 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2966,7 +2966,7 @@ static void end_bio_bh_io_sync(struct bio *bio, int err) * errors, this only handles the "we need to be able to * do IO at the final sector" case. */ -static void guard_bio_eod(int rw, struct bio *bio) +void guard_bio_eod(int rw, struct bio *bio) { sector_t maxsector; struct bio_vec *bvec = &bio->bi_io_vec[bio->bi_vcnt - 1]; diff --git a/fs/internal.h b/fs/internal.h index e325b4f9c799..b2623200107b 100644 --- a/fs/internal.h +++ b/fs/internal.h @@ -34,6 +34,11 @@ static inline int __sync_blockdev(struct block_device *bdev, int wait) } #endif +/* + * buffer.c + */ +extern void guard_bio_eod(int rw, struct bio *bio); + /* * char_dev.c */ diff --git a/fs/mpage.c b/fs/mpage.c index 5f9ed622274f..3e79220babac 100644 --- a/fs/mpage.c +++ b/fs/mpage.c @@ -28,6 +28,7 @@ #include #include #include +#include "internal.h" /* * I/O completion handler for multipage BIOs. @@ -57,6 +58,7 @@ static void mpage_end_io(struct bio *bio, int err) static struct bio *mpage_bio_submit(int rw, struct bio *bio) { bio->bi_end_io = mpage_end_io; + guard_bio_eod(rw, bio); submit_bio(rw, bio); return NULL; }