btrfs-progs: tests: a new test case to verify handling of hard links
The test case will create the following directory layout: . |- rootdir/ | |- inside_link |- outside_link Both inside_link and outside_link are hard links of each other. And use rootdir/ as the rootdir for mkfs. This is to ensure the nlink of inside_link is correctly set to 1. Inspired by the recent rework which fixes the handling of hard links. Signed-off-by: Qu Wenruo <wqu@suse.com>
This commit is contained in:
parent
27974edb4d
commit
aa5469da9c
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Test if "mkfs.btrfs --rootdir" would handle hard links where one is inside
|
||||
# the rootdir, the other out of the rootdir.
|
||||
|
||||
source "$TEST_TOP/common" || exit
|
||||
|
||||
prepare_test_dev
|
||||
|
||||
tmpdir=$(_mktemp_dir mkfs-rootdir-hardlinks)
|
||||
|
||||
run_check mkdir "$tmpdir/rootdir"
|
||||
run_check touch "$tmpdir/rootdir/inside_link"
|
||||
run_check ln "$tmpdir/rootdir/inside_link" "$tmpdir/outside_link"
|
||||
|
||||
run_check_mkfs_test_dev --rootdir "$tmpdir/rootdir"
|
||||
|
||||
# For older mkfs.btrfs --rootdir we will create inside_link with 2 links,
|
||||
# but since the other one is out of the rootdir, there should only be one
|
||||
# 1 link, leading to btrfs check fail.
|
||||
#
|
||||
# The new behavior will split all hard links into different inodes, thus
|
||||
# have correct nlink for each new inode.
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
|
Loading…
Reference in New Issue