kobject: Fix kobject_rename and !CONFIG_SYSFS
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 8 May 2008 21:41:00 +0000 (14:41 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 16 Oct 2008 16:24:52 +0000 (09:24 -0700)
commit030c1d2bfcc2187650fb975456ca0b61a5bb77f4
tree40ed27ce25cf8cbb6b8d3fdb8e25accc17b098c3
parent8c0e3998f5b71e68fe6b6e489a92e052715e563c
kobject: Fix kobject_rename and !CONFIG_SYSFS

When looking at kobject_rename I found two bugs with
that exist when sysfs support is disabled in the kernel.

kobject_rename does not change the name on the kobject when
sysfs support is not compiled in.

kobject_rename without locking attempts to check the
validity of a rename operation, which the kobject layer
simply does not have the infrastructure to do.

This patch documents the previously unstated requirement of
kobject_rename that is the responsibility of the caller to
provide mutual exclusion and to be certain that the new_name
for the kobject is valid.

This patch modifies sysfs_rename_dir in !CONFIG_SYSFS case
to call kobject_set_name to actually change the kobject_name.

This patch removes the bogus and misleading check in kobject_rename
that attempts to see if a rename is valid.  The check is bogus
because we do not have the proper locking.  The check is misleading
because it looks like we can and do perform checking at the kobject
level that we don't.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/kobject.txt
drivers/base/core.c
include/linux/sysfs.h
lib/kobject.c