aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorFabio Checconi <fabio@gandalf.sssup.i>2008-04-02 08:31:02 -0400
committerJens Axboe <jens.axboe@oracle.com>2008-04-02 09:42:20 -0400
commit34e6bbf23c8f43e8713d9bd092680f1660494b4a (patch)
tree908e97ac3d43882cb42bf57c41926852d3bc2f6e /include/linux
parent00d61e3e8c12d5f395b167856d2b3c430816afb0 (diff)
cfq-iosched: fix rcu freeing of cfq io contexts
SLAB_DESTROY_BY_RCU is not a direct substitute for normal call_rcu() freeing, since it'll page freeing but NOT object freeing. So change cfq to do the freeing on its own. Signed-off-by: Fabio Checconi <fabio@gandalf.sssup.it> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/iocontext.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
index 1b4ccf25b4d2..cac4b364cd40 100644
--- a/include/linux/iocontext.h
+++ b/include/linux/iocontext.h
@@ -2,6 +2,7 @@
2#define IOCONTEXT_H 2#define IOCONTEXT_H
3 3
4#include <linux/radix-tree.h> 4#include <linux/radix-tree.h>
5#include <linux/rcupdate.h>
5 6
6/* 7/*
7 * This is the per-process anticipatory I/O scheduler state. 8 * This is the per-process anticipatory I/O scheduler state.
@@ -54,6 +55,8 @@ struct cfq_io_context {
54 55
55 void (*dtor)(struct io_context *); /* destructor */ 56 void (*dtor)(struct io_context *); /* destructor */
56 void (*exit)(struct io_context *); /* called on task exit */ 57 void (*exit)(struct io_context *); /* called on task exit */
58
59 struct rcu_head rcu_head;
57}; 60};
58 61
59/* 62/*