diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-08-06 00:25:08 +0300 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-08-15 20:40:11 +0300 |
commit | 3537581a722402a1e6f0942cd0653035a9e09e21 (patch) | |
tree | a9feafd55e260848b60cbf03dfdfa4ebd0b2785c /fs/f2fs | |
parent | 008396e1b026b3873091b555b808155da7d9d18f (diff) | |
download | linux-3537581a722402a1e6f0942cd0653035a9e09e21.tar.xz |
f2fs: use IPU for cold files
We expect cold files write data sequentially, but sometimes some of small data
can be updated, which incurs fragmentation.
Let's avoid that.
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/segment.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h index 6b871b492fd5..7f700e54b77d 100644 --- a/fs/f2fs/segment.h +++ b/fs/f2fs/segment.h @@ -577,6 +577,10 @@ static inline bool need_inplace_update_policy(struct inode *inode, if (test_opt(sbi, LFS)) return false; + /* if this is cold file, we should overwrite to avoid fragmentation */ + if (file_is_cold(inode)) + return true; + if (policy & (0x1 << F2FS_IPU_FORCE)) return true; if (policy & (0x1 << F2FS_IPU_SSR) && need_SSR(sbi)) |