diff options
| author | 2011-05-24 00:06:26 -0700 | |
|---|---|---|
| committer | 2011-05-24 00:06:26 -0700 | |
| commit | b73077eb03f510a84b102fb97640e595a958403c (patch) | |
| tree | 8b639000418e2756bf6baece4e00e07d2534bccc /fs/proc/inode.c | |
| parent | Input: ads7846 - remove unused variable from struct ads7845_ser_req (diff) | |
| parent | Input: ADP5589 - new driver for I2C Keypad Decoder and I/O Expander (diff) | |
| download | linux-dev-b73077eb03f510a84b102fb97640e595a958403c.tar.xz linux-dev-b73077eb03f510a84b102fb97640e595a958403c.zip | |
Merge branch 'next' into for-linus
Diffstat (limited to 'fs/proc/inode.c')
| -rw-r--r-- | fs/proc/inode.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 176ce4cda68a..d15aa1b1cc8f 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,12 +39,13 @@ 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; - static struct kmem_cache * proc_inode_cachep; static struct inode *proc_alloc_inode(struct super_block *sb) |
