mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfstests: add specific test for default ACL inheritance
This test is motivated by an issue found by a btrfs user, addressed and described by the following Linux kernel patch: https://patchwork.kernel.org/patch/3046931/ The steps to reproduce the issue on btrfs are the following: $ mkfs.btrfs -f /dev/loop0 $ mount /dev/loop0 /mnt $ mkdir /mnt/acl $ setfacl -d --set u::rwx,g::rwx,o::- /mnt/acl $ getfacl /mnt/acl user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:other::--- $ mkdir /mnt/acl/dir1 $ getfacl /mnt/acl/dir1 user::rwx group::rwx other::--- After unmounting and mounting again the filesystem, getfacl returned the expected default ACL for the subdirectory: $ umount /mnt/acl $ mount /dev/loop0 /mnt $ getfacl /mnt/acl/dir1 user::rwx group::rwx other::--- default:user::rwx default:group::rwx default:other::--- This means that the underlying ACL xattr was persisted correctly but the in memory representation of the inode had (incorrectly) a NULL ACL. [rjohnston: renumbered test to 319] Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
committed by
Rich Johnston
parent
a49141302f
commit
8bab8b31bb
Executable
+71
@@ -0,0 +1,71 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
# FS QA Test No. generic/319
|
||||||
|
#
|
||||||
|
# Regression test to make sure a directory inherits the default ACL from
|
||||||
|
# its parent directory. This test was motivated by an issue reported by
|
||||||
|
# a btrfs user. That issue is fixed and described by the following btrfs
|
||||||
|
# kernel patch:
|
||||||
|
#
|
||||||
|
# https://patchwork.kernel.org/patch/3046931/
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2013 Filipe Manana. All Rights Reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it would be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
seq=`basename $0`
|
||||||
|
seqres=$RESULT_DIR/$seq
|
||||||
|
echo "QA output created by $seq"
|
||||||
|
|
||||||
|
here=`pwd`
|
||||||
|
tmp=/tmp/$$
|
||||||
|
status=1 # FAILure is the default!
|
||||||
|
|
||||||
|
_cleanup()
|
||||||
|
{
|
||||||
|
rm -f $tmp.*
|
||||||
|
}
|
||||||
|
|
||||||
|
trap "_cleanup ; exit \$status" 0 1 2 3 15
|
||||||
|
|
||||||
|
# get standard environment, filters and checks
|
||||||
|
. ./common/rc
|
||||||
|
. ./common/filter
|
||||||
|
. ./common/attr
|
||||||
|
|
||||||
|
# real QA test starts here
|
||||||
|
_supported_os Linux
|
||||||
|
_supported_fs generic
|
||||||
|
_require_acls
|
||||||
|
_require_scratch
|
||||||
|
_need_to_be_root
|
||||||
|
|
||||||
|
rm -f $seqres.full
|
||||||
|
|
||||||
|
_scratch_mkfs > /dev/null 2>&1
|
||||||
|
_scratch_mount
|
||||||
|
|
||||||
|
mkdir $SCRATCH_MNT/testdir
|
||||||
|
setfacl -d --set u::rwx,g::rwx,o::- $SCRATCH_MNT/testdir
|
||||||
|
getfacl --absolute-names $SCRATCH_MNT/testdir | _filter_scratch
|
||||||
|
|
||||||
|
mkdir $SCRATCH_MNT/testdir/testsubdir
|
||||||
|
getfacl --absolute-names $SCRATCH_MNT/testdir/testsubdir | _filter_scratch
|
||||||
|
|
||||||
|
# success, all done
|
||||||
|
status=0
|
||||||
|
exit
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
QA output created by 319
|
||||||
|
# file: SCRATCH_MNT/testdir
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
user::rwx
|
||||||
|
group::r-x
|
||||||
|
other::r-x
|
||||||
|
default:user::rwx
|
||||||
|
default:group::rwx
|
||||||
|
default:other::---
|
||||||
|
|
||||||
|
# file: SCRATCH_MNT/testdir/testsubdir
|
||||||
|
# owner: root
|
||||||
|
# group: root
|
||||||
|
user::rwx
|
||||||
|
group::rwx
|
||||||
|
other::---
|
||||||
|
default:user::rwx
|
||||||
|
default:group::rwx
|
||||||
|
default:other::---
|
||||||
|
|
||||||
@@ -121,3 +121,5 @@
|
|||||||
316 auto quick
|
316 auto quick
|
||||||
317 auto metadata quick
|
317 auto metadata quick
|
||||||
318 acl attr auto quick
|
318 acl attr auto quick
|
||||||
|
319 acl auto quick
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user