diff options
Diffstat (limited to 'fs/proc/proc_sysctl.c')
-rw-r--r-- | fs/proc/proc_sysctl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 09a1f92a34ef..f50133c11c24 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c | |||
@@ -32,7 +32,6 @@ static struct inode *proc_sys_make_inode(struct super_block *sb, | |||
32 | ei->sysctl_entry = table; | 32 | ei->sysctl_entry = table; |
33 | 33 | ||
34 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; | 34 | inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; |
35 | inode->i_flags |= S_PRIVATE; /* tell selinux to ignore this inode */ | ||
36 | inode->i_mode = table->mode; | 35 | inode->i_mode = table->mode; |
37 | if (!table->child) { | 36 | if (!table->child) { |
38 | inode->i_mode |= S_IFREG; | 37 | inode->i_mode |= S_IFREG; |
@@ -408,15 +407,18 @@ static int proc_sys_compare(const struct dentry *parent, | |||
408 | const struct dentry *dentry, const struct inode *inode, | 407 | const struct dentry *dentry, const struct inode *inode, |
409 | unsigned int len, const char *str, const struct qstr *name) | 408 | unsigned int len, const char *str, const struct qstr *name) |
410 | { | 409 | { |
410 | struct ctl_table_header *head; | ||
411 | /* Although proc doesn't have negative dentries, rcu-walk means | 411 | /* Although proc doesn't have negative dentries, rcu-walk means |
412 | * that inode here can be NULL */ | 412 | * that inode here can be NULL */ |
413 | /* AV: can it, indeed? */ | ||
413 | if (!inode) | 414 | if (!inode) |
414 | return 0; | 415 | return 1; |
415 | if (name->len != len) | 416 | if (name->len != len) |
416 | return 1; | 417 | return 1; |
417 | if (memcmp(name->name, str, len)) | 418 | if (memcmp(name->name, str, len)) |
418 | return 1; | 419 | return 1; |
419 | return !sysctl_is_seen(PROC_I(inode)->sysctl); | 420 | head = rcu_dereference(PROC_I(inode)->sysctl); |
421 | return !head || !sysctl_is_seen(head); | ||
420 | } | 422 | } |
421 | 423 | ||
422 | static const struct dentry_operations proc_sys_dentry_operations = { | 424 | static const struct dentry_operations proc_sys_dentry_operations = { |