From 7d07b3ae8ddad407913c5301877e694430a3263f Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Thu, 23 Nov 2023 08:24:31 +0000 Subject: [PATCH] add build kerneldeb --- kernel/fs/aio.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel/fs/aio.c b/kernel/fs/aio.c index 9635c29..6deff68 100644 --- a/kernel/fs/aio.c +++ b/kernel/fs/aio.c @@ -121,6 +121,7 @@ long nr_pages; struct rcu_work free_rwork; /* see free_ioctx() */ + struct work_struct free_work; /* see free_ioctx() */ /* * signals when all in-flight requests are done @@ -608,9 +609,9 @@ * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted - * now it's safe to cancel any that need to be. */ -static void free_ioctx_users(struct percpu_ref *ref) +static void free_ioctx_users_work(struct work_struct *work) { - struct kioctx *ctx = container_of(ref, struct kioctx, users); + struct kioctx *ctx = container_of(work, struct kioctx, free_work); struct aio_kiocb *req; spin_lock_irq(&ctx->ctx_lock); @@ -628,6 +629,14 @@ percpu_ref_put(&ctx->reqs); } +static void free_ioctx_users(struct percpu_ref *ref) +{ + struct kioctx *ctx = container_of(ref, struct kioctx, users); + + INIT_WORK(&ctx->free_work, free_ioctx_users_work); + schedule_work(&ctx->free_work); +} + static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm) { unsigned i, new_nr; -- Gitblit v1.6.2