#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2014 SUSE Linux Products GmbH. All Rights Reserved. # # FS QA Test No. btrfs/059 # # Regression test for btrfs where removing the flag FS_COMPR_FL (chattr -c) # from an inode wouldn't clear its compression property. # This was fixed in the following linux kernel patch: # # Btrfs: add missing compression property remove in btrfs_ioctl_setflags # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -fr $tmp } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/filter.btrfs # real QA test starts here _supported_fs btrfs _require_test _require_scratch _require_btrfs_command "property" rm -f $seqres.full _scratch_mkfs >> $seqres.full 2>&1 _scratch_mount mkdir $SCRATCH_MNT/testdir echo "Setting compression flag in the directory..." $CHATTR_PROG +c $SCRATCH_MNT/testdir echo "Directory compression property value:" $BTRFS_UTIL_PROG property get $SCRATCH_MNT/testdir compression | \ _filter_btrfs_compress_property touch $SCRATCH_MNT/testdir/file1 echo "file1 compression property value:" $BTRFS_UTIL_PROG property get $SCRATCH_MNT/testdir/file1 compression | \ _filter_btrfs_compress_property echo "Clearing compression flag from directory..." $CHATTR_PROG -c $SCRATCH_MNT/testdir echo "Directory compression property value:" $BTRFS_UTIL_PROG property get $SCRATCH_MNT/testdir compression | \ _filter_btrfs_compress_property touch $SCRATCH_MNT/testdir/file2 echo "file2 compression property value:" $BTRFS_UTIL_PROG property get $SCRATCH_MNT/testdir/file2 compression | \ _filter_btrfs_compress_property touch $SCRATCH_MNT/testdir/file1 echo "file1 compression property value:" $BTRFS_UTIL_PROG property get $SCRATCH_MNT/testdir/file1 compression | \ _filter_btrfs_compress_property status=0 exit