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. 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; -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
