OCFS2 and the io_uring issue

Here are instructions to reproduce the issue (io_uring does not work on OCFS2)

  1. Install Debian 12 with an additional empty disk.
  2. Create a partition on the empty disk (/dev/sdb1).
  3. apt install ocfs2-tools libvirt-daemon-system
  4. mkdir /dlm /mnt/ocfs2
  5. Edit /etc/default/o2cb and set this:
    O2CB_ENABLED=true
    O2CB_BOOTCLUSTER=ocfs2test
  6. o2cb add-cluster ocfs2test
  7. o2cb add-node --ip $IP ocfs2test $(hostname -s)
  8. systemctl restart o2cb
  9. mkfs.ocfs2 -v -Jblock64 -T vmstore -L OCFS2TEST /dev/sdb1
  10. mount -t ocfs2 -o noatime,localflocks,coherency=buffered /dev/sdb1 /mnt/ocfs2 and add it to /etc/fstab.
  11. 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.
  12. Use virsh edit to change the io parameter of the disk: <driver name='qemu' type='qcow2' io='io_uring'>
  13. Start the VM, should boot
  14. apt install linux-image-6.10.6+bpo-amd64 from backports
  15. reboot
  16. Trying to start the VM again should result in the error: Could not read qcow2 header: Operation not supported
  17. Change io parameter to threads: <driver name='qemu' type='qcow2' io='threads'>
  18. Starting the VM should work now. The same works with io='io_uring' when the image is not stored on OCFS2.