I can reproduce this in my local VM. I've traced ocfs2_dismount_volume and found that it hasn't been called. So EBUSY is returned in VFS layer. I guess something wrong when doing a copy with linked SQEs (normal copy seems no problem). Thanks, Joseph On 2/24/23 8:32 AM, Heming Zhao wrote:> Hello List, > > I found a weird bug on ocfs2. I am busying with other jobs, if anyone have time > he/she could fix it. This bug is blocking fstest generic/013 test case, and also > blocking fstest to do later test cases. > > How to trigger: > ``` > git clone git://git.kernel.dk/liburing.git > cd liburing > make > cd examples > mount -t ocfs2 /dev/sda /mnt > cp /etc/hosts /mnt/a > ./link-cp /mnt/a /mnt/b > umount /mnt > ``` > > umount trigger error message: > ``` > # umount /mnt > umount: /mnt: target is busy. > ``` > > The umount error can only be triggered by liburing write operation. > > Thanks, > Heming
Heming Zhao
2023-Feb-24 07:48 UTC
[Ocfs2-devel] report BUG: io_uring triggers umount error
On 2/24/23 2:54 PM, Joseph Qi wrote:> I can reproduce this in my local VM. > I've traced ocfs2_dismount_volume and found that it hasn't been called. > So EBUSY is returned in VFS layer. I guess something wrong when doing > a copy with linked SQEs (normal copy seems no problem). >I am inclined to agree with you. I also test liburing examples apps on ext4 partition, everything looks fine. I used below bpftrace method, the retval is '3'. bpftrace -e 'kr:mnt_get_count{printf("%d\n", retval);}' It responds to flow: path_umount() => do_umount => mnt_get_count (gets '3') Thanks, Heming> > On 2/24/23 8:32 AM, Heming Zhao wrote: >> Hello List, >> >> I found a weird bug on ocfs2. I am busying with other jobs, if anyone have time >> he/she could fix it. This bug is blocking fstest generic/013 test case, and also >> blocking fstest to do later test cases. >> >> How to trigger: >> ``` >> git clone git://git.kernel.dk/liburing.git >> cd liburing >> make >> cd examples >> mount -t ocfs2 /dev/sda /mnt >> cp /etc/hosts /mnt/a >> ./link-cp /mnt/a /mnt/b >> umount /mnt >> ``` >> >> umount trigger error message: >> ``` >> # umount /mnt >> umount: /mnt: target is busy. >> ``` >> >> The umount error can only be triggered by liburing write operation. >> >> Thanks, >> Heming