summaryrefslogtreecommitdiffstats
path: root/freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch
diff options
context:
space:
mode:
Diffstat (limited to 'freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch')
-rw-r--r--freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch b/freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch
new file mode 100644
index 000000000..079260349
--- /dev/null
+++ b/freed-ora/current/F-12/btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch
@@ -0,0 +1,42 @@
+From: Shi Weihua <shiwh@cn.fujitsu.com>
+Date: Tue, 18 May 2010 00:51:54 +0000 (+0000)
+Subject: Btrfs: prohibit a operation of changing acl's mask when noacl mount option used
+X-Git-Tag: v2.6.35-rc3~3^2~3
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=731e3d1b
+
+Btrfs: prohibit a operation of changing acl's mask when noacl mount option used
+
+when used Posix File System Test Suite(pjd-fstest) to test btrfs,
+some cases about setfacl failed when noacl mount option used.
+I simplified used commands in pjd-fstest, and the following steps
+can reproduce it.
+------------------------
+# cd btrfs-part/
+# mkdir aaa
+# setfacl -m m::rw aaa <- successed, but not expected by pjd-fstest.
+------------------------
+I checked ext3, a warning message occured, like as:
+ setfacl: aaa/: Operation not supported
+Certainly, it's expected by pjd-fstest.
+
+So, i compared acl.c of btrfs and ext3. Based on that, a patch created.
+Fortunately, it works.
+
+Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>
+Signed-off-by: Chris Mason <chris.mason@oracle.com>
+---
+
+diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c
+index 6b4d0cc..a372985 100644
+--- a/fs/btrfs/acl.c
++++ b/fs/btrfs/acl.c
+@@ -163,6 +163,9 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name,
+ if (!is_owner_or_cap(inode))
+ return -EPERM;
+
++ if (!IS_POSIXACL(inode))
++ return -EOPNOTSUPP;
++
+ if (value) {
+ acl = posix_acl_from_xattr(value, size);
+ if (acl == NULL) {
OpenPOWER on IntegriCloud