mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
btrfs/029: fix the test compatible with older cp(1)
cp(1) versions 8.30 and 8.32 are compared with its --reflink=always option and they have different semantic if the target-file (with zero sizes) must be created when the cp --reflink=alaways fails with a cross-device link error. As shown below. $ cp --version | head -1 cp (GNU coreutils) 8.30 $ cp --reflink=always /mnt/scratch/original /mnt/test/test-029/copy cp: failed to clone '/mnt/test/test-029/copy' from '/mnt/scratch/original': Invalid cross-device link $ ls -l /mnt/test/test-029/copy ls: cannot access '/mnt/test/test-029/copy': No such file or directory $ cp --version | head -1 cp (GNU coreutils) 8.32 $ cp --reflink=always /mnt/scratch/original /mnt/test/test-029/copy; cp: failed to clone '/mnt/test/test-029/copy' from '/mnt/scratch/original': Invalid cross-device link $ ls -l /mnt/test/test-029/copy -rw------- 1 root root 0 Jun 4 13:29 /mnt/test/test-029/copy Reported-by: Wang Yugui <wangyugui@e16-tech.com> Signed-off-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
+4
-2
@@ -65,8 +65,10 @@ _create_reflinks()
|
||||
echo "reflink=always:"
|
||||
cp --reflink=always $1 $2 >> $seqres.full 2>&1 || echo "cp reflink failed"
|
||||
|
||||
# The failed target actually gets created by cp:
|
||||
ls $2 | _filter_testdir_and_scratch
|
||||
# The failed target gets created with zero sizes by cp(1) version 8.32. But
|
||||
# in older cp(1) version 8.30 target file is not created when the
|
||||
# cp --reflink=always fails.
|
||||
ls $2 >> $seqres.full 2>&1
|
||||
}
|
||||
|
||||
echo "test reflinks across different devices"
|
||||
|
||||
@@ -5,11 +5,9 @@ reflink=auto:
|
||||
42d69d1a6d333a7ebdf64792a555e392 TEST_DIR/test-029/copy
|
||||
reflink=always:
|
||||
cp reflink failed
|
||||
TEST_DIR/test-029/copy
|
||||
test reflinks across different mountpoints of same device
|
||||
reflink=auto:
|
||||
42d69d1a6d333a7ebdf64792a555e392 SCRATCH_MNT/original
|
||||
42d69d1a6d333a7ebdf64792a555e392 TEST_DIR/test-029/copy
|
||||
reflink=always:
|
||||
cp reflink failed
|
||||
TEST_DIR/test-029/copy
|
||||
|
||||
Reference in New Issue
Block a user