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