f2fs: enable extent cache for compression files in read-only
Let's allow extent cache for RO partition. Signed-off-by: Daeho Jeong <daehojeong@google.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
@@ -3148,25 +3148,6 @@ static inline bool is_dot_dotdot(const u8 *name, size_t len)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool f2fs_may_extent_tree(struct inode *inode)
|
|
||||||
{
|
|
||||||
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
|
|
||||||
|
|
||||||
if (!test_opt(sbi, EXTENT_CACHE) ||
|
|
||||||
is_inode_flag_set(inode, FI_NO_EXTENT) ||
|
|
||||||
is_inode_flag_set(inode, FI_COMPRESSED_FILE))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* for recovered files during mount do not create extents
|
|
||||||
* if shrinker is not registered.
|
|
||||||
*/
|
|
||||||
if (list_empty(&sbi->s_list))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return S_ISREG(inode->i_mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *f2fs_kmalloc(struct f2fs_sb_info *sbi,
|
static inline void *f2fs_kmalloc(struct f2fs_sb_info *sbi,
|
||||||
size_t size, gfp_t flags)
|
size_t size, gfp_t flags)
|
||||||
{
|
{
|
||||||
@@ -4197,6 +4178,26 @@ F2FS_FEATURE_FUNCS(casefold, CASEFOLD);
|
|||||||
F2FS_FEATURE_FUNCS(compression, COMPRESSION);
|
F2FS_FEATURE_FUNCS(compression, COMPRESSION);
|
||||||
F2FS_FEATURE_FUNCS(readonly, RO);
|
F2FS_FEATURE_FUNCS(readonly, RO);
|
||||||
|
|
||||||
|
static inline bool f2fs_may_extent_tree(struct inode *inode)
|
||||||
|
{
|
||||||
|
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
|
||||||
|
|
||||||
|
if (!test_opt(sbi, EXTENT_CACHE) ||
|
||||||
|
is_inode_flag_set(inode, FI_NO_EXTENT) ||
|
||||||
|
(is_inode_flag_set(inode, FI_COMPRESSED_FILE) &&
|
||||||
|
!f2fs_sb_has_readonly(sbi)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* for recovered files during mount do not create extents
|
||||||
|
* if shrinker is not registered.
|
||||||
|
*/
|
||||||
|
if (list_empty(&sbi->s_list))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return S_ISREG(inode->i_mode);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_ZONED
|
#ifdef CONFIG_BLK_DEV_ZONED
|
||||||
static inline bool f2fs_blkz_is_seq(struct f2fs_sb_info *sbi, int devi,
|
static inline bool f2fs_blkz_is_seq(struct f2fs_sb_info *sbi, int devi,
|
||||||
block_t blkaddr)
|
block_t blkaddr)
|
||||||
|
Reference in New Issue
Block a user