mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfs/327: fix inode reflink flag checking
This is a regression test that tried to make sure that repair correctly clears the XFS inode reflink flag when it detects files that do not share any blocks. However, it does this checking by looking at the (online) lsattr output. This worked fine during development when we exposed the reflink state via the stat ioctls, but that has long since been removed. Now the only way to check is via xfs_db, so switch it to use that. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
committed by
Eryu Guan
parent
b951bb5cef
commit
f3d639b1cc
+16
-2
@@ -49,10 +49,21 @@ seq 1 $nr | while read i; do
|
|||||||
done
|
done
|
||||||
sync
|
sync
|
||||||
|
|
||||||
|
ino_0=$(stat -c '%i' $SCRATCH_MNT/file.0)
|
||||||
|
ino_64=$(stat -c '%i' $SCRATCH_MNT/file.64)
|
||||||
|
ino_128=$(stat -c '%i' $SCRATCH_MNT/file.128)
|
||||||
|
|
||||||
|
echo "Check filesystem"
|
||||||
|
_scratch_unmount
|
||||||
|
_scratch_xfs_db -c "inode $ino_0" -c print \
|
||||||
|
-c "inode $ino_64" -c print \
|
||||||
|
-c "inode $ino_128" -c print | grep reflink | sed -e 's/^v[0-9]*/vX/g'
|
||||||
|
_scratch_mount
|
||||||
|
|
||||||
echo "Check files"
|
echo "Check files"
|
||||||
for i in 0 $((nr / 2)) $nr; do
|
for i in 0 $((nr / 2)) $nr; do
|
||||||
md5sum $SCRATCH_MNT/file.$i | _filter_scratch
|
md5sum $SCRATCH_MNT/file.$i | _filter_scratch
|
||||||
$XFS_IO_PROG -c 'lsattr -v' $SCRATCH_MNT/file.$i | _filter_scratch
|
$XFS_IO_PROG -c 'lsattr -v' $SCRATCH_MNT/file.$i >> $seqres.full
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "CoW all files"
|
echo "CoW all files"
|
||||||
@@ -63,12 +74,15 @@ done
|
|||||||
echo "Repair filesystem"
|
echo "Repair filesystem"
|
||||||
_scratch_unmount
|
_scratch_unmount
|
||||||
_repair_scratch_fs >> $seqres.full
|
_repair_scratch_fs >> $seqres.full
|
||||||
|
_scratch_xfs_db -c "inode $ino_0" -c print \
|
||||||
|
-c "inode $ino_64" -c print \
|
||||||
|
-c "inode $ino_128" -c print | grep reflink | sed -e 's/^v[0-9]*/vX/g'
|
||||||
_scratch_mount
|
_scratch_mount
|
||||||
|
|
||||||
echo "Check files again"
|
echo "Check files again"
|
||||||
for i in 0 $((nr / 2)) $nr; do
|
for i in 0 $((nr / 2)) $nr; do
|
||||||
md5sum $SCRATCH_MNT/file.$i | _filter_scratch
|
md5sum $SCRATCH_MNT/file.$i | _filter_scratch
|
||||||
$XFS_IO_PROG -c 'lsattr -v' $SCRATCH_MNT/file.$i | _filter_scratch
|
$XFS_IO_PROG -c 'lsattr -v' $SCRATCH_MNT/file.$i >> $seqres.full
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|||||||
+7
-6
@@ -1,20 +1,21 @@
|
|||||||
QA output created by 327
|
QA output created by 327
|
||||||
Format filesystem
|
Format filesystem
|
||||||
Create files
|
Create files
|
||||||
|
Check filesystem
|
||||||
|
vX.reflink = 1
|
||||||
|
vX.reflink = 1
|
||||||
|
vX.reflink = 1
|
||||||
Check files
|
Check files
|
||||||
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.0
|
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.0
|
||||||
[] SCRATCH_MNT/file.0
|
|
||||||
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.64
|
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.64
|
||||||
[] SCRATCH_MNT/file.64
|
|
||||||
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.128
|
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.128
|
||||||
[] SCRATCH_MNT/file.128
|
|
||||||
CoW all files
|
CoW all files
|
||||||
Repair filesystem
|
Repair filesystem
|
||||||
|
vX.reflink = 0
|
||||||
|
vX.reflink = 0
|
||||||
|
vX.reflink = 0
|
||||||
Check files again
|
Check files again
|
||||||
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.0
|
8fa14cdd754f91cc6554c9e71929cce7 SCRATCH_MNT/file.0
|
||||||
[] SCRATCH_MNT/file.0
|
|
||||||
0f17fd72b7bbf5bda0ff433e6d1fc118 SCRATCH_MNT/file.64
|
0f17fd72b7bbf5bda0ff433e6d1fc118 SCRATCH_MNT/file.64
|
||||||
[] SCRATCH_MNT/file.64
|
|
||||||
0f17fd72b7bbf5bda0ff433e6d1fc118 SCRATCH_MNT/file.128
|
0f17fd72b7bbf5bda0ff433e6d1fc118 SCRATCH_MNT/file.128
|
||||||
[] SCRATCH_MNT/file.128
|
|
||||||
Done
|
Done
|
||||||
|
|||||||
Reference in New Issue
Block a user