f2fs: preload extent_cache for POSIX_FADV_WILLNEED
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 20 Sep 2023 00:43:52 +0000 (17:43 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 26 Sep 2023 17:38:56 +0000 (10:38 -0700)
This patch tries to preload extent_cache given POSIX_FADV_WILLNEED, which is
more useful for generic usecases.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c

index 09716127e107e8c4fe801ddfc084a87bd72b34a3..161826c6e2000dcf68e0f8fd3f8937d7c2275ef1 100644 (file)
@@ -4858,6 +4858,9 @@ static int f2fs_file_fadvise(struct file *filp, loff_t offset, loff_t len,
                filp->f_mode &= ~FMODE_RANDOM;
                spin_unlock(&filp->f_lock);
                return 0;
+       } else if (advice == POSIX_FADV_WILLNEED && offset == 0) {
+               /* Load extent cache at the first readahead. */
+               f2fs_precache_extents(inode);
        }
 
        err = generic_fadvise(filp, offset, len, advice);