]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: update kiocb->ki_pos at execution time
authorDylan Yudaken <dylany@fb.com>
Tue, 22 Feb 2022 10:55:02 +0000 (02:55 -0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Mar 2022 13:32:49 +0000 (06:32 -0700)
commit293456c56d95ca22ef083d64a059e8843729f00d
tree526b2e676b92677d4667ca67e182e1442183d30c
parent654331bc58e187166d86d69c57b267357e3aad7e
io_uring: update kiocb->ki_pos at execution time

Update kiocb->ki_pos at execution time rather than in io_prep_rw().
io_prep_rw() happens before the job is enqueued to a worker and so the
offset might be read multiple times before being executed once.

Ensures that the file position in a set of _linked_ SQEs will be only
obtained after earlier SQEs have completed, and so will include their
incremented file position.

Signed-off-by: Dylan Yudaken <dylany@fb.com>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c