mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
proc: less LOCK operations during lookup
Pseudo-code for lookup effectively is: LOCK kernel LOCK proc_subdir_lock find PDE UNLOCK proc_subdir_lock get inode LOCK proc_subdir_lock goto unlock UNLOCK proc_subdir_lock UNLOCK kernel We can get rid of LOCK/UNLOCK pair after getting inode simply by jumping to unlock_kernel() directly. Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5b3fe63b19
commit
4237e0d3de
@ -406,12 +406,12 @@ struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nam
|
||||
spin_unlock(&proc_subdir_lock);
|
||||
error = -EINVAL;
|
||||
inode = proc_get_inode(dir->i_sb, ino, de);
|
||||
spin_lock(&proc_subdir_lock);
|
||||
break;
|
||||
goto out_unlock;
|
||||
}
|
||||
}
|
||||
}
|
||||
spin_unlock(&proc_subdir_lock);
|
||||
out_unlock:
|
||||
unlock_kernel();
|
||||
|
||||
if (inode) {
|
||||
|
Loading…
Reference in New Issue
Block a user