From: Amir Goldstein <amir73il@gmail.com>
To: Eryu Guan <eguan@redhat.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>, Xiong Zhou <xzhou@redhat.com>,
linux-unionfs@vger.kernel.org, fstests@vger.kernel.org
Subject: [PATCH 4/5] overlay/017: verify constant inode number after rename
Date: Thu, 27 Apr 2017 18:09:34 +0300 [thread overview]
Message-ID: <1493305775-12559-5-git-send-email-amir73il@gmail.com> (raw)
In-Reply-To: <1493305775-12559-1-git-send-email-amir73il@gmail.com>
The test verifies constant inode number after copy up.
Verify that inode number remains constant also after rename
and drop caches (when overlayfs needs to find the lower
inodes in another location).
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
tests/overlay/017 | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/tests/overlay/017 b/tests/overlay/017
index f3bf454..1cf684d 100755
--- a/tests/overlay/017
+++ b/tests/overlay/017
@@ -8,7 +8,8 @@
# - modify A to trigger copy up
# - stat file A shows inode number Y != X
#
-# Also test if d_ino of readdir entries changes after copy up.
+# Also test if d_ino of readdir entries changes after copy up
+# and if inode numbers persist after rename and drop caches.
#
#-----------------------------------------------------------------------
#
@@ -94,6 +95,8 @@ _scratch_mount
rm -f $tmp.*
+testdir=$SCRATCH_MNT/test
+mkdir -p $testdir
# Test stable stat(2) st_ino
@@ -106,18 +109,29 @@ for f in $FILES; do
done
# Record inode numbers after copy up
-record_inode_numbers $SCRATCH_MNT $tmp.after
+record_inode_numbers $SCRATCH_MNT $tmp.after_copyup
+
+for f in $FILES; do
+ # move to another dir
+ mv $SCRATCH_MNT/$f $testdir/
+done
+
+echo 3 > /proc/sys/vm/drop_caches
+
+# Record inode numbers after rename and drop caches
+record_inode_numbers $testdir $tmp.after_move
# Test stable readdir(3)/getdents(2) d_ino
# find by inode number - expect to find file by inode number
cat $tmp.before | while read ino f; do
- find $SCRATCH_MNT/ -inum $ino -maxdepth 1 | grep -q $f || \
+ find $testdir/ -inum $ino -maxdepth 1 | grep -q $f || \
echo "$f not found by ino $ino"
done
# Compare before..after - expect silence
-diff $tmp.before $tmp.after
+diff -u $tmp.before $tmp.after_copyup
+diff -u $tmp.after_copyup $tmp.after_move
echo "Silence is golden"
status=0
--
2.7.4
next prev parent reply other threads:[~2017-04-27 15:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-27 15:09 [PATCH 0/5] fstests: more tests for overlay constant inode numbers Amir Goldstein
2017-04-27 15:09 ` [PATCH 1/5] overlay/017: silence test output Amir Goldstein
2017-04-28 5:36 ` Eryu Guan
2017-04-28 5:45 ` Amir Goldstein
2017-04-28 5:50 ` Eryu Guan
2017-04-28 6:34 ` Amir Goldstein
2017-04-28 6:50 ` Eryu Guan
2017-04-27 15:09 ` [PATCH 2/5] overlay/017: use af_unix to create socket test file Amir Goldstein
2017-04-27 15:09 ` [PATCH 3/5] overlay/017: create a helper to record inode number Amir Goldstein
2017-04-27 15:09 ` Amir Goldstein [this message]
2017-04-28 5:47 ` [PATCH 4/5] overlay/017: verify constant inode number after rename Eryu Guan
2017-04-28 5:50 ` Amir Goldstein
2017-04-27 15:09 ` [PATCH 5/5] overlay/017: test persistent inode numbers after mount cycle Amir Goldstein
2017-04-28 5:30 ` [PATCH 0/5] fstests: more tests for overlay constant inode numbers Eryu Guan
2017-04-28 5:39 ` Amir Goldstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1493305775-12559-5-git-send-email-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=xzhou@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox