#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2016 Red Hat Inc. All Rights Reserved. # # FS QA Test 012 # # The upper dentry may become stale before we remove it from # overlay, e.g. file was removed from upperdir directly, which # triggered warning/oops in ovl_remove_and_whiteout(). # # Commit cfc9fde0b07c ("ovl: verify upper dentry in # ovl_remove_and_whiteout()") fixed this issue. # 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() { cd / rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter rm -f $seqres.full # real QA test starts here _supported_fs overlay _require_scratch # remove all files from previous runs _scratch_mkfs lowerdir=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER mkdir -p $lowerdir/test _scratch_mount # remove test file to create a whiteout rmdir $SCRATCH_MNT/test # create the test file again and remove it from upperdir directly, make the # upper dentry become stale touch $SCRATCH_MNT/test rm $upperdir/test # try to remove test file from overlay dir, trigger ovl_remove_and_whiteout, it # should see stale file handle error, and no warnings/oops are expected. rm $SCRATCH_MNT/test 2>&1 | _filter_scratch # success, all done status=0 exit