]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: account user memory freed when exit has been queued
authorJens Axboe <axboe@kernel.dk>
Fri, 10 Jul 2020 15:13:34 +0000 (09:13 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 10 Jul 2020 15:18:35 +0000 (09:18 -0600)
commit5d4811280b8d9e2c807abc37dd92f74a14708973
tree86fe76e3d98a2193ce8b440a9d212f6d91c7b7fb
parente38b81f3b062c80fafe932a80dad452732ed5569
io_uring: account user memory freed when exit has been queued

We currently account the memory after the exit work has been run, but
that leaves a gap where a process has closed its ring and until the
memory has been accounted as freed. If the memlocked ulimit is
borderline, then that can introduce spurious setup errors returning
-ENOMEM because the free work hasn't been run yet.

Account this as freed when we close the ring, as not to expose a tiny
gap where setting up a new ring can fail.

Fixes: dbbd3cc36bec ("io_uring: punt final io_ring_ctx wait-and-free to workqueue")
Cc: stable@vger.kernel.org # v5.7
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c