Messages in this thread Patch in this message | | | Date | Thu, 15 Nov 2007 19:13:25 +0300 | From | Alexey Dobriyan <> | Subject | [PATCH] 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> ---
fs/proc/generic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
--- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -403,12 +403,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) { - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |