OCFS2 and the io_uring issue
Here are instructions to reproduce the issue (io_uring does not work on OCFS2)
- Install Debian 12 with an additional empty disk.
- Create a partition on the empty disk (/dev/sdb1).
- apt install ocfs2-tools libvirt-daemon-system
- mkdir /dlm /mnt/ocfs2
- Edit /etc/default/o2cb and set this:
O2CB_ENABLED=true
O2CB_BOOTCLUSTER=ocfs2test
- o2cb add-cluster ocfs2test
- o2cb add-node --ip $IP ocfs2test $(hostname -s)
- systemctl restart o2cb
- mkfs.ocfs2 -v -Jblock64 -T vmstore -L OCFS2TEST /dev/sdb1
- mount -t ocfs2 -o noatime,localflocks,coherency=buffered /dev/sdb1 /mnt/ocfs2 and add it to /etc/fstab.
- Use virt-manager or virsh to connect to the libvirtd on this system and create a new VM. Add a new qcow2 image on /mnt/ocfs2.
- Use virsh edit to change the io parameter of the disk: <driver name='qemu' type='qcow2' io='io_uring'>
- Start the VM, should boot
- apt install linux-image-6.10.6+bpo-amd64 from backports
- reboot
- Trying to start the VM again should result in the error: Could not read qcow2 header: Operation not supported
- Change io parameter to threads: <driver name='qemu' type='qcow2' io='threads'>
- Starting the VM should work now. The same works with io='io_uring' when the image is not stored on OCFS2.