|
@@ -98,7 +98,7 @@ static void mpage_end_io(struct bio *bio)
|
|
|
|
|
|
int ext4_mpage_readpages(struct address_space *mapping,
|
|
int ext4_mpage_readpages(struct address_space *mapping,
|
|
struct list_head *pages, struct page *page,
|
|
struct list_head *pages, struct page *page,
|
|
- unsigned nr_pages)
|
|
|
|
|
|
+ unsigned nr_pages, bool is_readahead)
|
|
{
|
|
{
|
|
struct bio *bio = NULL;
|
|
struct bio *bio = NULL;
|
|
sector_t last_block_in_bio = 0;
|
|
sector_t last_block_in_bio = 0;
|
|
@@ -259,7 +259,8 @@ int ext4_mpage_readpages(struct address_space *mapping,
|
|
bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9);
|
|
bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9);
|
|
bio->bi_end_io = mpage_end_io;
|
|
bio->bi_end_io = mpage_end_io;
|
|
bio->bi_private = ctx;
|
|
bio->bi_private = ctx;
|
|
- bio_set_op_attrs(bio, REQ_OP_READ, 0);
|
|
|
|
|
|
+ bio_set_op_attrs(bio, REQ_OP_READ,
|
|
|
|
+ is_readahead ? REQ_RAHEAD : 0);
|
|
}
|
|
}
|
|
|
|
|
|
length = first_hole << blkbits;
|
|
length = first_hole << blkbits;
|