#! /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 # . ./common/preamble _begin_fstest auto quick compress # Override the default cleanup function. _cleanup() { rm -fr $tmp } . ./common/filter . ./common/filter.btrfs _supported_fs btrfs _require_test _require_scratch _require_btrfs_command "property" _require_btrfs_no_nodatacow _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