f2fs: give some messages for inline_xattr_size
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 12 Mar 2019 18:49:53 +0000 (11:49 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 13 Mar 2019 02:02:21 +0000 (19:02 -0700)
This patch adds some kernel messages when user sets wrong inline_xattr_size.

Fixes: 500e0b28ecd3 ("f2fs: fix to check inline_xattr_size boundary correctly")
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 42eb5c86330ac7d340d55bc49dd9b080e2bc785d..324938ec95f3e21186c41d1a1e7871f41617bf87 100644 (file)
@@ -821,6 +821,8 @@ static int parse_options(struct super_block *sb, char *options)
        }
 
        if (test_opt(sbi, INLINE_XATTR_SIZE)) {
+               int min_size, max_size;
+
                if (!f2fs_sb_has_extra_attr(sbi) ||
                        !f2fs_sb_has_flexible_inline_xattr(sbi)) {
                        f2fs_msg(sb, KERN_ERR,
@@ -834,15 +836,18 @@ static int parse_options(struct super_block *sb, char *options)
                                        "set with inline_xattr option");
                        return -EINVAL;
                }
-               if (F2FS_OPTION(sbi).inline_xattr_size <
-                       sizeof(struct f2fs_xattr_header) / sizeof(__le32) ||
-                       F2FS_OPTION(sbi).inline_xattr_size >
-                       DEF_ADDRS_PER_INODE -
+
+               min_size = sizeof(struct f2fs_xattr_header) / sizeof(__le32);
+               max_size = DEF_ADDRS_PER_INODE -
                        F2FS_TOTAL_EXTRA_ATTR_SIZE / sizeof(__le32) -
                        DEF_INLINE_RESERVED_SIZE -
-                       MIN_INLINE_DENTRY_SIZE / sizeof(__le32)) {
+                       MIN_INLINE_DENTRY_SIZE / sizeof(__le32);
+
+               if (F2FS_OPTION(sbi).inline_xattr_size < min_size ||
+                               F2FS_OPTION(sbi).inline_xattr_size > max_size) {
                        f2fs_msg(sb, KERN_ERR,
-                                       "inline xattr size is out of range");
+                               "inline xattr size is out of range: %d ~ %d",
+                               min_size, max_size);
                        return -EINVAL;
                }
        }