Thread (24 messages) 24 messages, 5 authors, 2012-03-23

Re: [libsas PATCH v12 04/11] sysfs: handle 'parent deleted before child added'

From: Williams, Dan J <hidden>
Date: 2012-03-23 21:15:24
Also in: linux-scsi

On Fri, Mar 23, 2012 at 1:54 PM, Greg Kroah-Hartman
[off-list ref] wrote:
On Fri, Mar 23, 2012 at 11:43:28AM -0700, Dan Williams wrote:
quoted
On Thu, 2012-03-22 at 07:39 -0700, Greg Kroah-Hartman wrote:
quoted
And note, I hate pr_err(), what's wrong with printk() in this instance?
So how about an end run around the conversion to pr_err() and just make
these proper WARN()s since we end up calling dump_stack in both cases?

Something like:
diff --git a/lib/kobject.c b/lib/kobject.c
index e5f86c0..1bd0893 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -192,15 +192,14 @@ static int kobject_add_internal(struct kobject *kobj)
              /* be noisy on error issues */
              if (error == -EEXIST)
-                     pr_err("%s failed for %s with "
-                            "-EEXIST, don't try to register things with "
-                            "the same name in the same directory.\n",
-                            __func__, kobject_name(kobj));
+                     WARN(1, "%s failed for %s with "
+                          "-EEXIST, don't try to register things with "
+                          "the same name in the same directory.\n",
+                          __func__, kobject_name(kobj));
              else
-                     pr_err("%s failed for %s (error: %d parent: %s)\n",
-                            __func__, kobject_name(kobj), error,
-                            parent ? kobject_name(parent) : "'none'");
-             dump_stack();
+                     WARN(1, "%s failed for %s (error: %d parent: %s)\n",
+                          __func__, kobject_name(kobj), error,
+                          parent ? kobject_name(parent) : "'none'");
I'm missing why this isn't the exact same thing that is currently
happening...

confused,
WARN does wrap the printk and backtrace in "------------[ cut here
]------------\n" and "---[ end trace %016llx ]---\n" so automated
tools can pick it up, maybe that's useful in a core routine like this?

It's still modifying the else case to add the faulting child and
parent kobject names, and does so without setting a pr_ conversion
precedent in sysfs.

--
Dan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help