ovl: disable IOCB_DIO_CALLER_COMP
authorJens Axboe <axboe@kernel.dk>
Mon, 25 Sep 2023 06:21:35 +0000 (00:21 -0600)
committerChristian Brauner <brauner@kernel.org>
Mon, 25 Sep 2023 09:37:28 +0000 (11:37 +0200)
commit2d1b3bbc3dd56fc8364350eb93e5d67a05cb2c23
treeaf8d79fa0a64f2e35f709cf994454db2eef8132c
parent060e6c7d179ed2f2088a23ceedf60d63320e9311
ovl: disable IOCB_DIO_CALLER_COMP

overlayfs copies the kiocb flags when it sets up a new kiocb to handle
a write, but it doesn't properly support dealing with the deferred
caller completions of the kiocb. This means it doesn't get the final
write completion value, and hence will complete the write with '0' as
the result.

We could support the caller completions in overlayfs, but for now let's
just disable them in the generated write kiocb.

Reported-by: Zorro Lang <zlang@redhat.com>
Link: https://lore.kernel.org/io-uring/20230924142754.ejwsjen5pvyc32l4@dell-per750-06-vm-08.rhts.eng.pek2.redhat.com/
Fixes: 8c052fb3002e ("iomap: support IOCB_DIO_CALLER_COMP")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Message-Id: <71897125-e570-46ce-946a-d4729725e28f@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/overlayfs/file.c