Re: [PATCH 2/2] kobjects: Transmit return value of kobject_uevent_env()to caller

From: Wang Chen
Date: Wed Jun 25 2008 - 05:44:23 EST


Cornelia Huck said the following on 2008-6-24 22:24:
> > On Tue, 24 Jun 2008 16:59:06 +0800,
> > Wang Chen <wangchen@xxxxxxxxxxxxxx> wrote:
> >
>> >> The error signal shouldn't be dropped.
>> >>
>> >> Signed-off-by: Wang Chen <wangchen@xxxxxxxxxxxxxx>
>> >> ---
>> >> diff --git a/lib/kobject.c b/lib/kobject.c
>> >> index 718e510..e5de71e 100644
>> >> --- a/lib/kobject.c
>> >> +++ b/lib/kobject.c
>> >> @@ -430,7 +430,7 @@ int kobject_rename(struct kobject *kobj, const char *new_name)
>> >> * Some hotplug package track interfaces by their name and
>> >> * therefore want to know when the name is changed by the user. */
>> >> if (!error)
>> >> - kobject_uevent_env(kobj, KOBJ_MOVE, envp);
>> >> + error = kobject_uevent_env(kobj, KOBJ_MOVE, envp);
>> >>
>> >> out:
>> >> kfree(devpath_string);
>> >> @@ -482,7 +482,7 @@ int kobject_move(struct kobject *kobj, struct kobject *new_parent)
>> >> kobj->parent = new_parent;
>> >> new_parent = NULL;
>> >> kobject_put(old_parent);
>> >> - kobject_uevent_env(kobj, KOBJ_MOVE, envp);
>> >> + error = kobject_uevent_env(kobj, KOBJ_MOVE, envp);
>> >> out:
>> >> kobject_put(new_parent);
>> >> kobject_put(kobj);
>> >>
>> >>
>> >>
> >
> > This looks wrong. If everything went right except sending the uevent,
> > you'll make the caller believe that the whole operation failed, while
> > in reality the sysfs operation succeeded. Either just drop the error
> > again (or print a warning), or undo the previous operations on error
> > (which may fail).
> >

It's depended on how important sending uevent is.
If the sysfs operation succeeds, but user-space don't
get the notification. Is it ok?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/