[Ocfs2-devel] [PATCH 0/1] test case for patch 1/1

Heming Zhao heming.zhao at suse.com
Wed Jun 8 10:48:07 UTC 2022


=== test cases ====

<1> remount on local node for cluster env

mount -t ocfs2 /dev/vdb /mnt
mount -t ocfs2 /dev/vdb /mnt              <=== failure
mount -t ocfs2 -o nocluster /dev/vdb /mnt <=== failure

<2> remount on local node for nocluster env

mount -t ocfs2 -o nocluster /dev/vdb /mnt
mount -t ocfs2 /dev/vdb /mnt              <=== failure
mount -t ocfs2 -o nocluster /dev/vdb /mnt <=== failure

<3> remount on another node for cluster env

node2:
mount -t ocfs2 /dev/vdb /mnt

node1:
mount -t ocfs2 /dev/vdb /mnt  <== success
umount
mount -t ocfs2 -o nocluster /dev/vdb /mnt <== failure

<4> remount on another node for nocluster env

node2:
mount -t ocfs2 -o nocluster /dev/vdb /mnt

node1:
mount -t ocfs2 /dev/vdb /mnt              <== failure
mount -t ocfs2 -o nocluster /dev/vdb /mnt <== success, see below comment

<5> simulate after crash status for cluster env

(below all steps did on node1. node2 is unmount status)
mount -t ocfs2 /dev/vdb /mnt
dd if=/dev/vdb bs=1 count=8 skip=76058624 of=/root/slotmap.cluster.mnted
umount /mnt
dd if=/root/slotmap.cluster.mnted of=/dev/vdb seek=76058624 bs=1 count=8
mount -t ocfs2 -o nocluster /dev/vdb /mnt   <== failure
mount -t ocfs2 /dev/vdb /mnt && umount /mnt <== clean slot 0
mount -t ocfs2 -o nocluster /dev/vdb /mnt   <== success

<6> simulate after crash status for nocluster env

(below all steps did on node1. node2 is unmount status)
mount -t ocfs2 -o nocluster /dev/vdb /mnt
dd if=/dev/vdb bs=1 count=8 skip=76058624 of=/root/slotmap.nocluster.mnted
umount /mnt
dd if=/root/slotmap.nocluster.mnted of=/dev/vdb seek=76058624 bs=1 count=8
mount -t ocfs2 /dev/vdb /mnt   <== failure
mount -t ocfs2 -o nocluster /dev/vdb /mnt && umount /mnt <== clean slot 0
mount -t ocfs2 /dev/vdb /mnt   <== success


-----
For test case <4>, the kernel job is done, but there still left
userspace work todo. 
In my view, mount.ocfs2 needs add double confirm for this scenario.

current style:
```
# mount -t ocfs2 -o nocluster /dev/vdb /mnt && umount /mnt
Warning: to mount a clustered volume without the cluster stack.
Please make sure you only mount the file system from one node.
Otherwise, the file system may be damaged.
Proceed (y/N): y
```

I plan to change as:
```
# mount -t ocfs2 -o nocluster /dev/vdb /mnt && umount /mnt
Warning: to mount a clustered volume without the cluster stack.
Please make sure you only mount the file system from one node.
Otherwise, the file system may be damaged.
Proceed (y/N): y
Warning: detect volume already mounted as nocluster mode.
Do you mount this volume on another node?
Please confirm you want to mount this volume on this node.
Proceed (y/N): y
```

Heming Zhao (1):
  ocfs2: fix ocfs2_find_slot repeats alloc same slot issue

 fs/ocfs2/dlmglue.c  |  3 ++
 fs/ocfs2/ocfs2_fs.h |  3 ++
 fs/ocfs2/slot_map.c | 70 ++++++++++++++++++++++++++++++++++++---------
 3 files changed, 62 insertions(+), 14 deletions(-)

-- 
2.34.1




More information about the Ocfs2-devel mailing list