#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. # # FS QA Test No. 077 # # Check use of ACLs (extended attributes) on a full filesystem # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # Something w/ enough data to fill 256M of fs... filler="" [ -d /lib/modules ] && \ [ $(( $(du -h -m /lib/modules | tail -1| cut -f1) * 2 )) -ge 256 ] && \ filler=/lib/modules # fall back in case /lib/modules doesn't exist or smaller [[ -z $filler ]] && \ [ -d /usr ] && \ [ $(( $(du -h -m /usr | tail -1| cut -f1) * 2 )) -ge 256 ] && \ filler=/usr _cleanup() { cd / echo "*** unmount" _scratch_unmount 2>/dev/null } trap "_cleanup; rm -f $tmp.*; 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_fs generic _supported_os Linux [ ! -d $filler ] && _notrun "No directory at least 256MB to source files from" _require_scratch _require_attrs _require_acls _require_user echo "*** create filesystem" rm -f $seqres.full _scratch_unmount >/dev/null 2>&1 echo "*** MKFS ***" >>$seqres.full echo "" >>$seqres.full fs_size=$((256 * 1024 * 1024)) _scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 || _fail "mkfs failed" _scratch_mount mkdir $SCRATCH_MNT/subdir echo "*** set default ACL" setfacl -R -dm u:fsgqa:rwx,g::rwx,o::r-x,m::rwx $SCRATCH_MNT/subdir echo "*** populate filesystem, pass #1" | tee -a $seqres.full cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1 echo "*** populate filesystem, pass #2" | tee -a $seqres.full cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1 _check_scratch_fs echo "*** all done" status=0 exit