diff options
author | David S. Miller <davem@davemloft.net> | 2011-03-10 14:00:44 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-10 14:00:44 -0800 |
commit | bef6e7e76868ab454d5e83635a4a7a1961c74fb5 (patch) | |
tree | 1a7417b9dde942cc71f87c02688c6ac6b0e57a72 /fs/proc/inode.c | |
parent | dcbcdf22f500ac6e4ec06485341024739b9dc241 (diff) | |
parent | 9179746652faf0aba07b8b7f770dcf29892a24c6 (diff) |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'fs/proc/inode.c')
-rw-r--r-- | fs/proc/inode.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 176ce4cda68a..d6a7ca1fdac5 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -27,6 +27,7 @@ static void proc_evict_inode(struct inode *inode) { struct proc_dir_entry *de; + struct ctl_table_header *head; truncate_inode_pages(&inode->i_data, 0); end_writeback(inode); @@ -38,8 +39,11 @@ static void proc_evict_inode(struct inode *inode) de = PROC_I(inode)->pde; if (de) pde_put(de); - if (PROC_I(inode)->sysctl) - sysctl_head_put(PROC_I(inode)->sysctl); + head = PROC_I(inode)->sysctl; + if (head) { + rcu_assign_pointer(PROC_I(inode)->sysctl, NULL); + sysctl_head_put(head); + } } struct vfsmount *proc_mnt; |