Re: [PATCH] Btrfs: remove OPT_acl parse when acl disabled

2014-05-11 Thread Guangliang Zhao
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

2014-05-11 Thread Guangliang Zhao
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

2014-05-07 Thread Guangliang Zhao
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