aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-03-09 13:55:51 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-09 13:55:51 -0800
commit78833dd70602be6b71ef34225f708b1e500947dc (patch)
tree807050f760ccc7305b194d7568ebf98737076a40 /include
parentLinux 2.6.38-rc8 (diff)
parentnd->inode is not set on the second attempt in path_walk() (diff)
downloadlinux-dev-78833dd70602be6b71ef34225f708b1e500947dc.tar.xz
linux-dev-78833dd70602be6b71ef34225f708b1e500947dc.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: nd->inode is not set on the second attempt in path_walk() unfuck proc_sysctl ->d_compare() minimal fix for do_filp_open() race
Diffstat (limited to 'include')
-rw-r--r--include/linux/sysctl.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 7bb5cb64f3b8..bb7c2b086fa4 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -25,6 +25,7 @@
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/compiler.h>
+#include <linux/rcupdate.h>
struct completion;
@@ -1037,10 +1038,15 @@ struct ctl_table_root {
struct ctl_table trees. */
struct ctl_table_header
{
- struct ctl_table *ctl_table;
- struct list_head ctl_entry;
- int used;
- int count;
+ union {
+ struct {
+ struct ctl_table *ctl_table;
+ struct list_head ctl_entry;
+ int used;
+ int count;
+ };
+ struct rcu_head rcu;
+ };
struct completion *unregistering;
struct ctl_table *ctl_table_arg;
struct ctl_table_root *root;