Переглянути джерело

f2fs: introduce noinline_xattr mount option

This patch introduces new mount option 'noinline_xattr', so we can disable
inline xattr functionality which is already set as a default mount option.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Chao Yu 8 роки тому
батько
коміт
23cf7212a1
2 змінених файлів з 12 додано та 0 видалено
  1. 1 0
      Documentation/filesystems/f2fs.txt
  2. 11 0
      fs/f2fs/super.c

+ 1 - 0
Documentation/filesystems/f2fs.txt

@@ -125,6 +125,7 @@ active_logs=%u         Support configuring the number of active logs. In the
 disable_ext_identify   Disable the extension list configured by mkfs, so f2fs
 disable_ext_identify   Disable the extension list configured by mkfs, so f2fs
                        does not aware of cold files such as media files.
                        does not aware of cold files such as media files.
 inline_xattr           Enable the inline xattrs feature.
 inline_xattr           Enable the inline xattrs feature.
+noinline_xattr         Disable the inline xattrs feature.
 inline_data            Enable the inline data feature: New created small(<~3.4k)
 inline_data            Enable the inline data feature: New created small(<~3.4k)
                        files can be written into inode block.
                        files can be written into inode block.
 inline_dentry          Enable the inline dir feature: data in new created
 inline_dentry          Enable the inline dir feature: data in new created

+ 11 - 0
fs/f2fs/super.c

@@ -89,6 +89,7 @@ enum {
 	Opt_active_logs,
 	Opt_active_logs,
 	Opt_disable_ext_identify,
 	Opt_disable_ext_identify,
 	Opt_inline_xattr,
 	Opt_inline_xattr,
+	Opt_noinline_xattr,
 	Opt_inline_data,
 	Opt_inline_data,
 	Opt_inline_dentry,
 	Opt_inline_dentry,
 	Opt_noinline_dentry,
 	Opt_noinline_dentry,
@@ -122,6 +123,7 @@ static match_table_t f2fs_tokens = {
 	{Opt_active_logs, "active_logs=%u"},
 	{Opt_active_logs, "active_logs=%u"},
 	{Opt_disable_ext_identify, "disable_ext_identify"},
 	{Opt_disable_ext_identify, "disable_ext_identify"},
 	{Opt_inline_xattr, "inline_xattr"},
 	{Opt_inline_xattr, "inline_xattr"},
+	{Opt_noinline_xattr, "noinline_xattr"},
 	{Opt_inline_data, "inline_data"},
 	{Opt_inline_data, "inline_data"},
 	{Opt_inline_dentry, "inline_dentry"},
 	{Opt_inline_dentry, "inline_dentry"},
 	{Opt_noinline_dentry, "noinline_dentry"},
 	{Opt_noinline_dentry, "noinline_dentry"},
@@ -444,6 +446,9 @@ static int parse_options(struct super_block *sb, char *options)
 		case Opt_inline_xattr:
 		case Opt_inline_xattr:
 			set_opt(sbi, INLINE_XATTR);
 			set_opt(sbi, INLINE_XATTR);
 			break;
 			break;
+		case Opt_noinline_xattr:
+			clear_opt(sbi, INLINE_XATTR);
+			break;
 #else
 #else
 		case Opt_user_xattr:
 		case Opt_user_xattr:
 			f2fs_msg(sb, KERN_INFO,
 			f2fs_msg(sb, KERN_INFO,
@@ -457,6 +462,10 @@ static int parse_options(struct super_block *sb, char *options)
 			f2fs_msg(sb, KERN_INFO,
 			f2fs_msg(sb, KERN_INFO,
 				"inline_xattr options not supported");
 				"inline_xattr options not supported");
 			break;
 			break;
+		case Opt_noinline_xattr:
+			f2fs_msg(sb, KERN_INFO,
+				"noinline_xattr options not supported");
+			break;
 #endif
 #endif
 #ifdef CONFIG_F2FS_FS_POSIX_ACL
 #ifdef CONFIG_F2FS_FS_POSIX_ACL
 		case Opt_acl:
 		case Opt_acl:
@@ -909,6 +918,8 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root)
 		seq_puts(seq, ",nouser_xattr");
 		seq_puts(seq, ",nouser_xattr");
 	if (test_opt(sbi, INLINE_XATTR))
 	if (test_opt(sbi, INLINE_XATTR))
 		seq_puts(seq, ",inline_xattr");
 		seq_puts(seq, ",inline_xattr");
+	else
+		seq_puts(seq, ",noinline_xattr");
 #endif
 #endif
 #ifdef CONFIG_F2FS_FS_POSIX_ACL
 #ifdef CONFIG_F2FS_FS_POSIX_ACL
 	if (test_opt(sbi, POSIX_ACL))
 	if (test_opt(sbi, POSIX_ACL))