Re: [PATCH] Btrfs: remove OPT_acl parse when acl disabled
On Fri, May 09, 2014 at 03:21:09PM +0200, David Sterba wrote: On Thu, May 08, 2014 at 12:56:32PM +0800, Guangliang Zhao wrote: Even CONFIG_BTRFS_FS_POSIX_ACL is not defined, the acl still could been enabled using a mount option, and now fs/btrfs/acl.o is not built, so the mount options will appear to be supported but will be silently ignored. --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -579,9 +579,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) goto out; } break; +#ifdef CONFIG_BTRFS_FS_POSIX_ACL case Opt_acl: root-fs_info-sb-s_flags |= MS_POSIXACL; break; +#endif This will still silently accept the 'acl' mount option: token = match_token(p, tokens, args); token will be Opt_acl and in the switch(token), caught by the default: branch and will return 0. Didn't take care of it, good catch :-). I will send V2 ASAP. What' needed here is a #if/#else/#endif sequence where the #else block says that something like acls requested but not compiled in. Similar to how the Opt_check_integrity* options are handled. case Opt_noacl: root-fs_info-sb-s_flags = ~MS_POSIXACL; break; -- Best regards, Guangliang -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2] Btrfs: remove OPT_acl parse when acl disabled
Even CONFIG_BTRFS_FS_POSIX_ACL is not defined, the acl still could been enabled using a mount option, and now fs/btrfs/acl.o is not built, so the mount options will appear to be supported but will be silently ignored. Signed-off-by: Guangliang Zhao lucienc...@gmail.com Reviewed-by: David Sterba dste...@suse.cz --- V2: return -EINVAL when ACL didn't complied in fs/btrfs/super.c |7 +++ 1 file changed, 7 insertions(+) diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 363404b..1046e66 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -580,8 +580,15 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) } break; case Opt_acl: +#ifdef CONFIG_BTRFS_FS_POSIX_ACL root-fs_info-sb-s_flags |= MS_POSIXACL; break; +#else + btrfs_err(root-fs_info, + support for ACL not compiled in!); + ret = -EINVAL; + goto out; +#endif case Opt_noacl: root-fs_info-sb-s_flags = ~MS_POSIXACL; break; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] Btrfs: remove OPT_acl parse when acl disabled
Even CONFIG_BTRFS_FS_POSIX_ACL is not defined, the acl still could been enabled using a mount option, and now fs/btrfs/acl.o is not built, so the mount options will appear to be supported but will be silently ignored. Signed-off-by: Guangliang Zhao lucienc...@gmail.com --- fs/btrfs/super.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 363404b..68ae27c 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -579,9 +579,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) goto out; } break; +#ifdef CONFIG_BTRFS_FS_POSIX_ACL case Opt_acl: root-fs_info-sb-s_flags |= MS_POSIXACL; break; +#endif case Opt_noacl: root-fs_info-sb-s_flags = ~MS_POSIXACL; break; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html