f2fs: add parameter op_flag in f2fs_submit_page_read()
authorJia Yang <jiayang5@huawei.com>
Wed, 1 Jul 2020 02:27:40 +0000 (10:27 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 8 Jul 2020 04:51:48 +0000 (21:51 -0700)
The parameter op_flag is not used in f2fs_get_read_data_page(),
but it is used in f2fs_grab_read_bio(). Obviously, op_flag is
not passed to f2fs_grab_read_bio() successfully. We need to add
parameter in f2fs_submit_page_read() to pass it.

The case:
- gc_data_segment
 - f2fs_get_read_data_page(.., op_flag = REQ_RAHEAD,..)
  - f2fs_submit_page_read
   - f2fs_grab_read_bio(.., op_flag = 0, ..)

Signed-off-by: Jia Yang <jiayang5@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index 995cf78b23c5e52900c066e0171268330766ecc2..20f31ff47e05ffb4a21e031f686790cc17b32f61 100644 (file)
@@ -1025,12 +1025,13 @@ static void f2fs_release_read_bio(struct bio *bio)
 
 /* This can handle encryption stuffs */
 static int f2fs_submit_page_read(struct inode *inode, struct page *page,
-                                               block_t blkaddr, bool for_write)
+                                block_t blkaddr, int op_flags, bool for_write)
 {
        struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
        struct bio *bio;
 
-       bio = f2fs_grab_read_bio(inode, blkaddr, 1, 0, page->index, for_write);
+       bio = f2fs_grab_read_bio(inode, blkaddr, 1, op_flags,
+                                       page->index, for_write);
        if (IS_ERR(bio))
                return PTR_ERR(bio);
 
@@ -1217,7 +1218,8 @@ got_it:
                return page;
        }
 
-       err = f2fs_submit_page_read(inode, page, dn.data_blkaddr, for_write);
+       err = f2fs_submit_page_read(inode, page, dn.data_blkaddr,
+                                               op_flags, for_write);
        if (err)
                goto put_err;
        return page;
@@ -3398,7 +3400,7 @@ repeat:
                        err = -EFSCORRUPTED;
                        goto fail;
                }
-               err = f2fs_submit_page_read(inode, page, blkaddr, true);
+               err = f2fs_submit_page_read(inode, page, blkaddr, 0, true);
                if (err)
                        goto fail;