From: Miao Xie Date: Tue, 25 Jan 2011 07:46:17 +0000 (+0800) Subject: Btrfs: Don't return acl info when mounting with noacl option X-Git-Tag: v2.6.38-rc4~2^2~21^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d0f69686c2ae775529aadc7a8acc6f13ad41de66;p=profile%2Fivi%2Fkernel-x86-ivi.git Btrfs: Don't return acl info when mounting with noacl option Steps to reproduce: # mkfs.btrfs /dev/sda2 # mount /dev/sda2 /mnt # touch /mnt/file0 # setfacl -m 'u:root:x,g::x,o::x' /mnt/file0 # umount /mnt # mount /dev/sda2 -o noacl /mnt # getfacl /mnt/file0 ... user::rw- user:root:--x group::--x mask::--x other::--x The output should be: user::rw- group::--x other::--x Signed-off-by: Miao Xie Signed-off-by: Li Zefan --- diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 2222d16..3c52fc8 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c @@ -37,6 +37,9 @@ static struct posix_acl *btrfs_get_acl(struct inode *inode, int type) char *value = NULL; struct posix_acl *acl; + if (!IS_POSIXACL(inode)) + return NULL; + acl = get_cached_acl(inode, type); if (acl != ACL_NOT_CACHED) return acl; @@ -82,6 +85,9 @@ static int btrfs_xattr_acl_get(struct dentry *dentry, const char *name, struct posix_acl *acl; int ret = 0; + if (!IS_POSIXACL(dentry->d_inode)) + return -EOPNOTSUPP; + acl = btrfs_get_acl(dentry->d_inode, type); if (IS_ERR(acl))