summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds2011-03-09 22:55:51 +0100
committerLinus Torvalds2011-03-09 22:55:51 +0100
commit78833dd70602be6b71ef34225f708b1e500947dc (patch)
tree807050f760ccc7305b194d7568ebf98737076a40 /include/linux
parentLinux 2.6.38-rc8 (diff)
parentnd->inode is not set on the second attempt in path_walk() (diff)
downloadkernel-qcow2-linux-78833dd70602be6b71ef34225f708b1e500947dc.tar.gz
kernel-qcow2-linux-78833dd70602be6b71ef34225f708b1e500947dc.tar.xz
kernel-qcow2-linux-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/linux')
-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;