#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2023 Netapp Inc., All Rights Reserved. # # FS QA Test 728 # # Test a bug where the NFS client wasn't sending a post-op GETATTR to the # server after setting an xattr, resulting in `stat` reporting a stale ctime. # . ./common/preamble _begin_fstest auto quick attr # Import common functions . ./common/attr # real QA test starts here _supported_fs generic _require_test _require_attrs rm -rf $TEST_DIR/testfile touch $TEST_DIR/testfile check_xattr_op() { what=$1 shift 1 before_ctime=$(stat -c %z $TEST_DIR/testfile) # maximum known ctime granularity is 2s (e.g. FAT) sleep 2 $SETFATTR_PROG $* $TEST_DIR/testfile after_ctime=$(stat -c %z $TEST_DIR/testfile) test "$before_ctime" != "$after_ctime" || echo "Expected ctime to change after $what." } check_xattr_op setxattr -n user.foobar -v 123 check_xattr_op removexattr -x user.foobar echo "Silence is golden" status=0 exit