On Wed, Apr 09, 2025 at 01:52:20PM +0200, Amir Goldstein wrote: > This is a variant of generic/477 with connectable file handles. > This test uses load and store of file handles from a temp file to test > decoding connectable file handles after cycle mount and after renames. > Decoding connectable file handles after being moved to a new parent > is expected to fail. > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- Hi Amir, This test case fails on some filesystems, e.g. nfs [1] and tmpfs [2]. Is this as your expected? Thanks, Zorro [1] generic/777 fails on nfs: --- /dev/fd/63 2025-05-07 02:44:24.150560533 -0400 +++ generic/777.out.bad 2025-05-07 02:44:23.999734558 -0400 @@ -1,7 +1,37 @@ QA output created by 777 test_file_handles after cycle mount +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file! test_file_handles after rename parent +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file! test_file_handles after rename grandparent +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000000) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000001) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000002) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000003) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000004) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000005) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000006) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000007) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000008) returned 116 incorrectly on a linked file! +open_by_handle(/mnt/fstests/TEST_DIR/nfs-client/file000009) returned 116 incorrectly on a linked file! test_file_handles after move to new parent open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file! open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file! [2] generic/777 fails on tmpfs: --- /dev/fd/63 2025-05-07 07:53:26.265453903 -0400 +++ generic/777.out.bad 2025-05-07 07:53:25.536434660 -0400 @@ -3,13 +3,3 @@ test_file_handles after rename parent test_file_handles after rename grandparent test_file_handles after move to new parent -open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000002) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000003) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000004) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000005) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000006) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000007) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000008) returned 116 incorrectly on a linked file! -open_by_handle(TEST_DIR/file000009) returned 116 incorrectly on a linked file! > tests/generic/777 | 79 +++++++++++++++++++++++++++++++++++++++++++ > tests/generic/777.out | 15 ++++++++ > 2 files changed, 94 insertions(+) > create mode 100755 tests/generic/777 > create mode 100644 tests/generic/777.out > > diff --git a/tests/generic/777 b/tests/generic/777 > new file mode 100755 > index 00000000..52a461c3 > --- /dev/null > +++ b/tests/generic/777 > @@ -0,0 +1,79 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (C) 2018-2025 CTERA Networks. All Rights Reserved. > +# > +# FS QA Test No. 777 > +# > +# Check open by connectable file handle after cycle mount. > +# > +# This is a variant of test 477 with connectable file handles. > +# This test uses load and store of file handles from a temp file to test > +# decoding file handles after cycle mount and after directory renames. > +# Decoding connectable file handles after being moved to a new parent > +# is expected to fail. > +# > +. ./common/preamble > +_begin_fstest auto quick exportfs > + > +# Import common functions. > +. ./common/filter > + > + > +# Modify as appropriate. > +_require_test > +# Require connectable file handles support > +_require_open_by_handle -N > + > +NUMFILES=10 > +testroot=$TEST_DIR/$seq-dir > +testdir=$testroot/testdir > + > +# Create test dir and test files, encode connectable file handles and store to tmp file > +create_test_files() > +{ > + rm -rf $testdir > + mkdir -p $testdir > + $here/src/open_by_handle -N -cwp -o $tmp.handles_file $testdir $NUMFILES > +} > + > +# Decode connectable file handles loaded from tmp file > +test_file_handles() > +{ > + local opt=$1 > + local when=$2 > + > + echo test_file_handles after $when > + $here/src/open_by_handle $opt -i $tmp.handles_file $TEST_DIR $NUMFILES > +} > + > +# Decode file handles of files/dir after cycle mount > +create_test_files > +_test_cycle_mount > +test_file_handles -rp "cycle mount" > + > +# Decode file handles of files/dir after rename of parent and cycle mount > +create_test_files $testdir > +rm -rf $testdir.renamed > +mv $testdir $testdir.renamed/ > +_test_cycle_mount > +test_file_handles -rp "rename parent" > + > +# Decode file handles of files/dir after rename of grandparent and cycle mount > +create_test_files $testdir > +rm -rf $testroot.renamed > +mv $testroot $testroot.renamed/ > +_test_cycle_mount > +test_file_handles -rp "rename grandparent" > + > +# Decode file handles of files/dir after move to new parent and cycle mount > +# This is expected to fail because the conectable file handle encodes the > +# old parent. > +create_test_files $testdir > +rm -rf $testdir.new > +mkdir -p $testdir.new > +mv $testdir/* $testdir.new/ > +_test_cycle_mount > +test_file_handles -r "move to new parent" | _filter_test_dir > + > +status=0 > +exit > diff --git a/tests/generic/777.out b/tests/generic/777.out > new file mode 100644 > index 00000000..648c480c > --- /dev/null > +++ b/tests/generic/777.out > @@ -0,0 +1,15 @@ > +QA output created by 777 > +test_file_handles after cycle mount > +test_file_handles after rename parent > +test_file_handles after rename grandparent > +test_file_handles after move to new parent > +open_by_handle(TEST_DIR/file000000) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000001) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000002) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000003) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000004) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000005) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000006) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000007) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000008) returned 116 incorrectly on a linked file! > +open_by_handle(TEST_DIR/file000009) returned 116 incorrectly on a linked file! > -- > 2.34.1 >