[PATCH 5/7] generic/exportfs: add a test case for renamed parent dir

Amir Goldstein
2018-01-07T18:06:43Z

Check that a dir file handle can be opened after its parent
has been renamed.

Retry decoding subdir file handle when parent is in dcache
and when parent is not in dcache.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
tests/generic/467 | 7 +++++++
tests/generic/467.out | 3 +++
2 files changed, 10 insertions(+)

diff --git a/tests/generic/467 b/tests/generic/467
index 592ffbe..555b44b 100755
--- a/tests/generic/467
+++ b/tests/generic/467
@@ -67,6 +67,7 @@ create_test_files()
local opt=$2

rm -rf $dir
+ mkdir -p $dir
$here/src/open_by_handle -cwp $dir $NUMFILES
}

@@ -114,12 +115,18 @@ test_file_handles $TEST_DIR -r -i $tmp.file_handles

# Check non-stale file handles of renamed dirs
create_test_files $testdir
+create_test_files $testdir/subdir
rm -rf $testdir.renamed
# Store file handles before rename of testdir
test_file_handles $testdir -p -o $tmp.file_handles
+test_file_handles $testdir/subdir -p -o $tmp.subdir_file_handles
mv $testdir $testdir.renamed/
# Check open, read and readdir from stored file handles
test_file_handles $TEST_DIR -rp -i $tmp.file_handles
+test_file_handles $TEST_DIR -rp -i $tmp.subdir_file_handles
+# Retry decoding subdir file handle when testdir is in dcache
+# (providing renamed testdir argument pins testdir to dcache)
+test_file_handles $testdir.renamed -rp -i $tmp.subdir_file_handles

status=0
exit
diff --git a/tests/generic/467.out b/tests/generic/467.out
index c29289e..dfa3240 100644
--- a/tests/generic/467.out
+++ b/tests/generic/467.out
@@ -8,4 +8,7 @@ test_file_handles TEST_DIR/467-dir -mr
test_file_handles TEST_DIR/467-dir -o file_handles
test_file_handles TEST_DIR -r -i file_handles
test_file_handles TEST_DIR/467-dir -p -o file_handles
+test_file_handles TEST_DIR/467-dir/subdir -p -o subdir_file_handles
test_file_handles TEST_DIR -rp -i file_handles
+test_file_handles TEST_DIR -rp -i subdir_file_handles
+test_file_handles TEST_DIR/467-dir.renamed -rp -i subdir_file_handles
--
2.7.4