]> git.proxmox.com Git - ceph.git/blame - ceph/qa/workunits/rbd/krbd_stable_writes.sh
import 15.2.9
[ceph.git] / ceph / qa / workunits / rbd / krbd_stable_writes.sh
CommitLineData
11fdf7f2 1#!/usr/bin/env bash
7c673cae
FG
2
3set -ex
4
9f95a23c
TL
5function assert_dm() {
6 local name=$1
7 local val=$2
8
9 local devno
10 devno=$(sudo dmsetup info -c --noheadings -o Major,Minor $name)
adb31ebb 11 grep -q $val /sys/dev/block/$devno/queue/stable_writes
9f95a23c
TL
12}
13
14function dmsetup_reload() {
15 local name=$1
16
17 local table
18 table=$(</dev/stdin)
19
20 sudo dmsetup suspend $name
21 echo "$table" | sudo dmsetup reload $name
22 sudo dmsetup resume $name
23}
24
adb31ebb 25IMAGE_NAME="stable-writes-test"
7c673cae
FG
26
27rbd create --size 1 $IMAGE_NAME
28DEV=$(sudo rbd map $IMAGE_NAME)
9f95a23c
TL
29
30fallocate -l 1M loopfile
31LOOP_DEV=$(sudo losetup -f --show loopfile)
32
7c673cae 33[[ $(blockdev --getsize64 $DEV) -eq 1048576 ]]
adb31ebb 34grep -q 1 /sys/block/${DEV#/dev/}/queue/stable_writes
7c673cae
FG
35
36rbd resize --size 2 $IMAGE_NAME
37[[ $(blockdev --getsize64 $DEV) -eq 2097152 ]]
adb31ebb 38grep -q 1 /sys/block/${DEV#/dev/}/queue/stable_writes
9f95a23c
TL
39
40cat <<EOF | sudo dmsetup create tbl
410 1024 linear $LOOP_DEV 0
42EOF
43assert_dm tbl 0
44sudo dmsetup remove tbl
45
46cat <<EOF | sudo dmsetup create tbl
470 1024 linear $DEV 0
48EOF
49assert_dm tbl 1
50sudo dmsetup remove tbl
51
52cat <<EOF | sudo dmsetup create tbl
530 1024 linear $LOOP_DEV 0
541024 2048 error
55EOF
56assert_dm tbl 0
57sudo dmsetup remove tbl
58
59cat <<EOF | sudo dmsetup create tbl
600 1024 linear $DEV 0
611024 2048 error
62EOF
63assert_dm tbl 1
64sudo dmsetup remove tbl
65
66cat <<EOF | sudo dmsetup create tbl
670 1024 linear $LOOP_DEV 0
681024 2048 linear $DEV 0
69EOF
70assert_dm tbl 1
71sudo dmsetup remove tbl
72
73cat <<EOF | sudo dmsetup create tbl
740 1024 linear $DEV 0
751024 2048 linear $LOOP_DEV 0
76EOF
77assert_dm tbl 1
78sudo dmsetup remove tbl
79
80cat <<EOF | sudo dmsetup create tbl
810 1024 linear $LOOP_DEV 0
82EOF
83assert_dm tbl 0
84cat <<EOF | dmsetup_reload tbl
850 1024 linear $LOOP_DEV 0
861024 2048 linear $DEV 0
87EOF
88assert_dm tbl 1
89cat <<EOF | dmsetup_reload tbl
900 1024 linear $LOOP_DEV 0
91EOF
92assert_dm tbl 0
93sudo dmsetup remove tbl
94
95cat <<EOF | sudo dmsetup create tbl
960 1024 linear $DEV 0
97EOF
98assert_dm tbl 1
99cat <<EOF | dmsetup_reload tbl
1000 1024 linear $DEV 0
1011024 2048 linear $LOOP_DEV 0
102EOF
103assert_dm tbl 1
104cat <<EOF | dmsetup_reload tbl
1050 1024 linear $DEV 0
106EOF
107assert_dm tbl 1
108sudo dmsetup remove tbl
109
110cat <<EOF | sudo dmsetup create tbl
1110 1024 linear $DEV 0
112EOF
113assert_dm tbl 1
114cat <<EOF | dmsetup_reload tbl
1150 1024 linear $DEV 0
1161024 2048 linear $LOOP_DEV 0
117EOF
118assert_dm tbl 1
119cat <<EOF | dmsetup_reload tbl
1200 1024 error
1211024 2048 linear $LOOP_DEV 0
122EOF
123assert_dm tbl 0
124cat <<EOF | dmsetup_reload tbl
1250 1024 linear $DEV 0
1261024 2048 linear $LOOP_DEV 0
127EOF
128assert_dm tbl 1
129cat <<EOF | dmsetup_reload tbl
1300 1024 linear $DEV 0
131EOF
132assert_dm tbl 1
133sudo dmsetup remove tbl
134
135sudo losetup -d $LOOP_DEV
136rm loopfile
137
7c673cae 138sudo rbd unmap $DEV
9f95a23c 139rbd rm $IMAGE_NAME
7c673cae
FG
140
141echo OK