diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-03-23 20:44:59 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-03-23 20:44:59 +0100 |
commit | 1e708fa30b6273f9d509adf51643023840de7a46 (patch) | |
tree | 54efe5da24cd7276db44b0236c9bdf30a580e86c | |
parent | 9c2db17fe1e4f89efc32c497d3488b9ab4eab8b4 (diff) | |
download | linux-rt-1e708fa30b6273f9d509adf51643023840de7a46.tar.gz |
[ANNOUNCE] v4.14.29-rt24v4.14.29-rt24-patches
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | patches/fs-aio-simple-simple-work.patch | 48 | ||||
-rw-r--r-- | patches/localversion.patch | 2 |
2 files changed, 13 insertions, 37 deletions
diff --git a/patches/fs-aio-simple-simple-work.patch b/patches/fs-aio-simple-simple-work.patch index 112840171a19..671f2032b237 100644 --- a/patches/fs-aio-simple-simple-work.patch +++ b/patches/fs-aio-simple-simple-work.patch @@ -24,8 +24,8 @@ Reported-By: Mike Galbraith <umgwanakikbuti@gmail.com> Suggested-by: Benjamin LaHaise <bcrl@kvack.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - fs/aio.c | 24 +++++++++++++++++------- - 1 file changed, 17 insertions(+), 7 deletions(-) + fs/aio.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) --- a/fs/aio.c +++ b/fs/aio.c @@ -37,16 +37,15 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #include <asm/kmap_types.h> #include <linux/uaccess.h> -@@ -115,7 +116,7 @@ struct kioctx { - struct page **ring_pages; - long nr_pages; +@@ -117,6 +118,7 @@ struct kioctx { -- struct work_struct free_work; -+ struct swork_event free_work; + struct rcu_head free_rcu; + struct work_struct free_work; /* see free_ioctx() */ ++ struct swork_event free_swork; /* see free_ioctx() */ /* * signals when all in-flight requests are done -@@ -258,6 +259,7 @@ static int __init aio_setup(void) +@@ -259,6 +261,7 @@ static int __init aio_setup(void) .mount = aio_mount, .kill_sb = kill_anon_super, }; @@ -54,30 +53,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> aio_mnt = kern_mount(&aio_fs); if (IS_ERR(aio_mnt)) panic("Failed to create aio fs mount."); -@@ -588,9 +590,9 @@ static int kiocb_cancel(struct aio_kiocb - return cancel(&kiocb->common); - } - --static void free_ioctx(struct work_struct *work) -+static void free_ioctx(struct swork_event *sev) - { -- struct kioctx *ctx = container_of(work, struct kioctx, free_work); -+ struct kioctx *ctx = container_of(sev, struct kioctx, free_work); - - pr_debug("freeing %p\n", ctx); - -@@ -609,8 +611,8 @@ static void free_ioctx_reqs(struct percp - if (ctx->rq_wait && atomic_dec_and_test(&ctx->rq_wait->count)) - complete(&ctx->rq_wait->comp); - -- INIT_WORK(&ctx->free_work, free_ioctx); -- schedule_work(&ctx->free_work); -+ INIT_SWORK(&ctx->free_work, free_ioctx); -+ swork_queue(&ctx->free_work); - } - - /* -@@ -618,9 +620,9 @@ static void free_ioctx_reqs(struct percp +@@ -633,9 +636,9 @@ static void free_ioctx_reqs(struct percp * 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. */ @@ -85,11 +61,11 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +static void free_ioctx_users_work(struct swork_event *sev) { - struct kioctx *ctx = container_of(ref, struct kioctx, users); -+ struct kioctx *ctx = container_of(sev, struct kioctx, free_work); ++ struct kioctx *ctx = container_of(sev, struct kioctx, free_swork); struct aio_kiocb *req; spin_lock_irq(&ctx->ctx_lock); -@@ -639,6 +641,14 @@ static void free_ioctx_users(struct perc +@@ -654,6 +657,14 @@ static void free_ioctx_users(struct perc percpu_ref_put(&ctx->reqs); } @@ -97,8 +73,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +{ + struct kioctx *ctx = container_of(ref, struct kioctx, users); + -+ INIT_SWORK(&ctx->free_work, free_ioctx_users_work); -+ swork_queue(&ctx->free_work); ++ INIT_SWORK(&ctx->free_swork, free_ioctx_users_work); ++ swork_queue(&ctx->free_swork); +} + static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm) diff --git a/patches/localversion.patch b/patches/localversion.patch index cad0c1aa7aa9..619fa3040f83 100644 --- a/patches/localversion.patch +++ b/patches/localversion.patch @@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt23 ++-rt24 |