author: Miquel van Smoorenburg <mikevs@xs4all.net> 2009-01-06 14:39:02 -0800
committer: Linus Torvalds <torvalds@linux-foundation.org> 2009-01-06 15:58:59 -0800
commit: 38c8e6180939e5619140b2e9e479cb26029ff8b1
parent: 75aa199410359dc5fbcf9025ff7af98a9d20f0d5
Commit Summary:
Diffstat:
1 file changed, 4 insertions, 1 deletion
diff --git a/fs/mpage.c b/fs/mpage.c
index 552b80b3facc..46e977efd50a 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -308,7 +308,10 @@ alloc_new:
goto alloc_new;
}
- if (buffer_boundary(map_bh) || (first_hole != blocks_per_page))
+ relative_block = block_in_file - *first_logical_block;
+ nblocks = map_bh->b_size >> blkbits;
+ if ((buffer_boundary(map_bh) && relative_block == nblocks) ||
+ (first_hole != blocks_per_page))
bio = mpage_bio_submit(READ, bio);
else
*last_block_in_bio = blocks[blocks_per_page - 1];