[PATCH 2.6.34-rc1] proc: fix badness in fs/proc/generic.c

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: GuanJun He
Date: Wednesday, April 21, 2010 - 4:09 am

fix badness in fs/proc/generic.c,  Bug 15589 -  2.6.34-rc1: Badness at
fs/proc/generic.c:316

Signed-off-by: Guanjun He <heguanbo@gmail.com>

---
diff -Nupr linux-2.6.34-rc1.orig/fs/proc/generic.c
linux-2.6.34-rc1/fs/proc/generic.c
--- linux-2.6.34-rc1.orig/fs/proc/generic.c     2010-03-09
02:45:44.000000000 +0800
+++ linux-2.6.34-rc1/fs/proc/generic.c  2010-04-21 19:02:49.000000000 +0800
@@ -297,11 +297,13 @@ static int __xlate_proc_name(const char
        const char              *cp = name, *next;
        struct proc_dir_entry   *de;
        int                     len;
+       int                     rtn = 0;

        de = *ret;
        if (!de)
                de = &proc_root;

+       spin_lock(&proc_subdir_lock);
        while (1) {
                next = strchr(cp, '/');
                if (!next)
@@ -313,14 +315,17 @@ static int __xlate_proc_name(const char
                                break;
                }
                if (!de) {
-                       WARN(1, "name '%s'\n", name);
-                       return -ENOENT;
+                       WARN(1, "name \"%s\"\n", name);
+                       rtn = -ENOENT;
+                       goto out;
                }
                cp += len + 1;
        }
        *residual = cp;
        *ret = de;
-       return 0;
+out:
+       spin_unlock(&proc_subdir_lock);
+       return rtn;
 }

 static int xlate_proc_name(const char *name, struct proc_dir_entry **ret,
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 2.6.34-rc1] proc: fix badness in fs/proc/generic.c, GuanJun He, (Wed Apr 21, 4:09 am)