From: Xiubo Li <xiubli@xxxxxxxxxx> For the old mount API, the module parameters parseing function will be called in ceph_mount() and also just after the default posix acl flag set, so we can control to enable/disable it via the mount option. But for the new mount API, it will call the module parameters parseing function before ceph_get_tree(), so the posix acl will always be enabled. Fixes: 82995cc6c5ae ("libceph, rbd, ceph: convert to use the new mount API") Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> --- fs/ceph/super.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/ceph/super.c b/fs/ceph/super.c index 5fef4f59e13e..69fa498391dc 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c @@ -341,6 +341,10 @@ static int ceph_parse_mount_param(struct fs_context *fc, unsigned int mode; int token, ret; +#ifdef CONFIG_CEPH_FS_POSIX_ACL + fc->sb_flags |= SB_POSIXACL; +#endif + ret = ceph_parse_param(param, pctx->copts, fc); if (ret != -ENOPARAM) return ret; @@ -1089,10 +1093,6 @@ static int ceph_get_tree(struct fs_context *fc) if (!fc->source) return invalf(fc, "ceph: No source"); -#ifdef CONFIG_CEPH_FS_POSIX_ACL - fc->sb_flags |= SB_POSIXACL; -#endif - /* create client (which we may/may not use) */ fsc = create_fs_client(pctx->opts, pctx->copts); pctx->opts = NULL; -- 2.21.0