]>
Commit | Line | Data |
---|---|---|
adb31ebb TL |
1 | #!/bin/sh -x |
2 | ||
3 | expect_failure() { | |
4 | if "$@"; then return 1; else return 0; fi | |
5 | } | |
6 | ||
7 | set -e | |
8 | ||
9 | mkdir group | |
10 | mkdir group/subvol1 | |
11 | ||
12 | setfattr -n ceph.dir.subvolume -v 1 group/subvol1 | |
13 | ||
14 | # rename subvolume | |
15 | mv group/subvol1 group/subvol2 | |
16 | ||
17 | # move file out of the subvolume | |
18 | touch group/subvol2/file1 | |
19 | expect_failure python3 -c "import os; os.rename('group/subvol2/file1', 'group/file1')" | |
20 | # move file into the subvolume | |
21 | touch group/file2 | |
22 | expect_failure python3 -c "import os; os.rename('group/file2', 'group/subvol2/file2')" | |
23 | ||
24 | # create hardlink within subvolume | |
25 | ln group/subvol2/file1 group/subvol2/file1_ | |
26 | ||
27 | # create hardlink out of subvolume | |
28 | expect_failure ln group/subvol2/file1 group/file1_ | |
29 | expect_failure ln group/file2 group/subvol1/file2_ | |
30 | ||
31 | # create snapshot at subvolume root | |
32 | mkdir group/subvol2/.snap/s1 | |
33 | ||
34 | # create snapshot at descendent dir of subvolume | |
35 | mkdir group/subvol2/dir | |
36 | expect_failure mkdir group/subvol2/dir/.snap/s2 | |
37 | ||
38 | mkdir group/subvol3 | |
39 | setfattr -n ceph.dir.subvolume -v 1 group/subvol3 | |
40 | ||
41 | # move file across subvolumes | |
42 | expect_failure python3 -c "import os; os.rename('group/subvol2/file1', 'group/subvol3/file1')" | |
43 | ||
44 | # create hardlink across subvolumes | |
45 | expect_failure ln group/subvol2/file1 group/subvol3/file1 | |
46 | ||
47 | # create subvolume inside existing subvolume | |
48 | expect_failure setfattr -n ceph.dir.subvolume -v 1 group/subvol2/dir | |
49 | ||
50 | # clear subvolume flag | |
51 | setfattr -n ceph.dir.subvolume -v 0 group/subvol2 | |
52 | mkdir group/subvol2/dir/.snap/s2 | |
53 | ||
54 | # parent subvolume override child subvolume | |
55 | setfattr -n ceph.dir.subvolume -v 1 group/subvol2/dir | |
56 | setfattr -n ceph.dir.subvolume -v 1 group/subvol2 | |
57 | expect_failure mkdir group/subvol2/dir/.snap/s3 | |
58 | ||
59 | rmdir group/subvol2/.snap/s1 | |
60 | rmdir group/subvol2/dir/.snap/s2 | |
61 | rm -rf group | |
62 | ||
63 | echo OK |