summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorBenjamin LaHaise <bcrl@kvack.org>2013-12-21 15:49:28 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-09 12:25:08 -0800
commit200067a3f3e73eecb457c5bf25fec875cf42d53d (patch)
tree12b9fe89d34c42beb0f722670e29cc31e97a82ed /fs
parent3a3f7cfe5c16170aeb0dd2654f464cfbd2332b1d (diff)
aio: fix kioctx leak introduced by "aio: Fix a trinity splat"
commit 1881686f842065d2f92ec9c6424830ffc17d23b0 upstream. e34ecee2ae791df674dfb466ce40692ca6218e43 reworked the percpu reference counting to correct a bug trinity found. Unfortunately, the change lead to kioctxes being leaked because there was no final reference count to put. Add that reference count back in to fix things. Signed-off-by: Benjamin LaHaise <bcrl@kvack.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/aio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/aio.c b/fs/aio.c
index 6efb7f6cb22e..fd1c0baf15bb 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -652,7 +652,8 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
aio_nr += ctx->max_reqs;
spin_unlock(&aio_nr_lock);
- percpu_ref_get(&ctx->users); /* io_setup() will drop this ref */
+ percpu_ref_get(&ctx->users); /* io_setup() will drop this ref */
+ percpu_ref_get(&ctx->reqs); /* free_ioctx_users() will drop this */
err = ioctx_add_table(ctx, mm);
if (err)