proc: ->low_ino cleanup
- ->low_ino is write-once field -- reading it under locks is unnecessary. - /proc/$PID stuff never reaches pde_put()/free_proc_entry() -- PROC_DYNAMIC_FIRST check never triggers. - in proc_get_inode(), inode number always matches proc dir entry, so save one parameter. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
9d6de12f70
commit
6d1b6e4eff
@@ -416,12 +416,11 @@ static const struct file_operations proc_reg_file_ops_no_compat = {
|
||||
};
|
||||
#endif
|
||||
|
||||
struct inode *proc_get_inode(struct super_block *sb, unsigned int ino,
|
||||
struct proc_dir_entry *de)
|
||||
struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
|
||||
{
|
||||
struct inode * inode;
|
||||
|
||||
inode = iget_locked(sb, ino);
|
||||
inode = iget_locked(sb, de->low_ino);
|
||||
if (!inode)
|
||||
return NULL;
|
||||
if (inode->i_state & I_NEW) {
|
||||
@@ -471,7 +470,7 @@ int proc_fill_super(struct super_block *s)
|
||||
s->s_time_gran = 1;
|
||||
|
||||
pde_get(&proc_root);
|
||||
root_inode = proc_get_inode(s, PROC_ROOT_INO, &proc_root);
|
||||
root_inode = proc_get_inode(s, &proc_root);
|
||||
if (!root_inode)
|
||||
goto out_no_root;
|
||||
root_inode->i_uid = 0;
|
||||
|
Reference in New Issue
Block a user