io_uring: mem-account pbuf buckets
commit cc18cc5e82
upstream.
Potentially, someone may create as many pbuf bucket as there are indexes
in an xarray without any other restrictions bounding our memory usage,
put memory needed for the buckets under memory accounting.
Cc: <stable@vger.kernel.org>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/d34c452e45793e978d26e2606211ec9070d329ea.1659622312.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
50446ac345
Коммит
fa3040688d
|
@ -4477,7 +4477,8 @@ static int io_provide_buffers(struct io_kiocb *req, unsigned int issue_flags)
|
||||||
|
|
||||||
ret = io_add_buffers(p, &head);
|
ret = io_add_buffers(p, &head);
|
||||||
if (ret >= 0 && !list) {
|
if (ret >= 0 && !list) {
|
||||||
ret = xa_insert(&ctx->io_buffers, p->bgid, head, GFP_KERNEL);
|
ret = xa_insert(&ctx->io_buffers, p->bgid, head,
|
||||||
|
GFP_KERNEL_ACCOUNT);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
__io_remove_buffers(ctx, head, p->bgid, -1U);
|
__io_remove_buffers(ctx, head, p->bgid, -1U);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче