Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4237e0d3de38da640d7c977d68f5f7f1d207a631
Commit:     4237e0d3de38da640d7c977d68f5f7f1d207a631
Parent:     5b3fe63b19e00f3b2a14a09c979e84163029e390
Author:     Alexey Dobriyan <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 8 04:18:27 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Fri Feb 8 09:22:23 2008 -0800

    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 <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/proc/generic.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 6a2fe51..75cd8d7 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -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) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to