summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/f2fs.h
diff options
context:
space:
mode:
authorChao Yu <chao@kernel.org>2023-05-31 09:40:55 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2023-06-26 06:07:09 -0700
commitf240d3aaf5a1552ecb75445b47b1ca957d5151d2 (patch)
treefc88af7e9635e1e2e70797b655ead557742ac167 /fs/f2fs/f2fs.h
parent64ee9163fe1b911aa0476af06ee0afd23fdf7388 (diff)
downloadlinux-stable-f240d3aaf5a1552ecb75445b47b1ca957d5151d2.tar.gz
linux-stable-f240d3aaf5a1552ecb75445b47b1ca957d5151d2.tar.bz2
linux-stable-f240d3aaf5a1552ecb75445b47b1ca957d5151d2.zip
f2fs: do more sanity check on inode
There are several issues in sanity_check_inode(): - The code looks not clean, it checks extra_attr related condition dispersively. - It missed to check i_extra_isize w/ lower boundary - It missed to check feature dependency: prjquota, inode_chksum, inode_crtime, compression features rely on extra_attr feature. - It's not necessary to check i_extra_isize due to it will only be assigned to non-zero value if f2fs_has_extra_attr() is true in do_read_inode(). Fix them all in this patch. Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r--fs/f2fs/f2fs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 94811085f9f3..bd0edb619f40 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3417,6 +3417,8 @@ static inline int get_inline_xattr_addrs(struct inode *inode)
((is_inode_flag_set(i, FI_ACL_MODE)) ? \
(F2FS_I(i)->i_acl_mode) : ((i)->i_mode))
+#define F2FS_MIN_EXTRA_ATTR_SIZE (sizeof(__le32))
+
#define F2FS_TOTAL_EXTRA_ATTR_SIZE \
(offsetof(struct f2fs_inode, i_extra_end) - \
offsetof(struct f2fs_inode, i_extra_isize)) \