On 06/21, Jens Axboe wrote: > On 6/21/18 12:47 PM, Jaegeuk Kim wrote: > > On 06/20, Jens Axboe wrote: > >> a_ops->readpages() is only ever used for read-ahead, yet we don't > >> flag the IO being submitted as such. Fix that up. Any file system > >> that uses mpage_readpages() as its ->readpages() implementation > >> will now get this right. > >> > >> Since we're passing in whether the IO is read-ahead or not, we > >> don't need to pass in the 'gfp' separately, as it is dependent > >> on the IO being read-ahead. Kill off that member. > >> > >> Add some documentation notes on ->readpages() being purely for > >> read-ahead. > >> > >> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> > >> --- > >> fs/f2fs/data.c | 5 +++++ > >> fs/mpage.c | 29 +++++++++++++++++++---------- > >> include/linux/fs.h | 4 ++++ > >> 3 files changed, 28 insertions(+), 10 deletions(-) > >> > >> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > >> index 8f931d699287..b7c9b58acf3e 100644 > >> --- a/fs/f2fs/data.c > >> +++ b/fs/f2fs/data.c > >> @@ -1421,6 +1421,11 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, > >> /* > >> * This function was originally taken from fs/mpage.c, and customized for f2fs. > >> * Major change was from block_size == page_size in f2fs by default. > >> + * > >> + * Note that the aops->readpages() function is ONLY used for read-ahead. If > >> + * this function ever deviates from doing just read-ahead, it should either > >> + * use ->readpage() or do the necessary surgery to decouple ->readpages() > >> + * readom read-ahead. > >> */ > >> static int f2fs_mpage_readpages(struct address_space *mapping, > >> struct list_head *pages, struct page *page, > > > > Hi Jens, > > > > Could you please consider the below change to address your concern? > > Looks good to me. Let me add this change in f2fs tree. Thanks,