On Fri, Jul 01, 2022 at 02:09:32PM -0600, Jens Axboe wrote: > generic/471 complains because it expects any write done with RWF_NOWAIT > to succeed as long as the blocks for the write are already instantiated. > This isn't necessarily a correct assumption, as there are other conditions > that can cause an RWF_NOWAIT write to fail with -EAGAIN even if the range > is already there. > > Since the risk of blocking off this path is minor, just allow inode > time updates with IOCB_NOWAIT set. Then we can later decide if we should > catch this further down the stack. I think this is broken. Please just drop the test, the non-blocking behavior here makes a lot of sense. At least for XFS, the update will end up allocating and commit a transaction which involves memory allocation, a blocking lock and possibly waiting for lock space.