|
@@ -308,7 +308,10 @@ alloc_new:
|
|
goto 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);
|
|
bio = mpage_bio_submit(READ, bio);
|
|
else
|
|
else
|
|
*last_block_in_bio = blocks[blocks_per_page - 1];
|
|
*last_block_in_bio = blocks[blocks_per_page - 1];
|