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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to