The issue arises when io uring starts a write, calling `kiocb start write()` to bump the super block rwsem, which can cause a deadlock if someone is attempting to freeze the mount point. This results in a stuck trace, showing the dependency with the write blocked from starting a new write. The freeze side grabs the rwsem for writing, excluding new writers and waiting for existing writes to finish. However, io uring unconditionally uses `kiocb start write()`, which will block if someone is currently attempting to freeze the mount point. This can be triggered when `IOCB NOWAIT` is not set, causing io uring to attempt a blocking grab of the super block rwsem. The fix involves having the io uring side honor `IOCB NOWAIT`, returning `-EAGAIN` and allowing io uring core to issue a blocking attempt of the write, ensuring forward progress.