ChangeSet 1.1376, 2003/07/03 17:43:49-07:00, greg@kroah.com [PATCH] driver core: added class_device_rename() Based on a patch written by Dan Aloni drivers/base/class.c | 18 ++++++++++++++++++ include/linux/device.h | 2 ++ 2 files changed, 20 insertions(+) diff -Nru a/drivers/base/class.c b/drivers/base/class.c --- a/drivers/base/class.c Thu Jul 3 18:15:38 2003 +++ b/drivers/base/class.c Thu Jul 3 18:15:38 2003 @@ -339,6 +339,24 @@ class_device_put(class_dev); } +int class_device_rename(struct class_device *class_dev, char *new_name) +{ + class_dev = class_device_get(class_dev); + if (!class_dev) + return -EINVAL; + + pr_debug("CLASS: renaming '%s' to '%s'\n", class_dev->class_id, + new_name); + + strlcpy(class_dev->class_id, new_name, KOBJ_NAME_LEN); + + kobject_rename(&class_dev->kobj, new_name); + + class_device_put(class_dev); + + return 0; +} + struct class_device * class_device_get(struct class_device *class_dev) { if (class_dev) diff -Nru a/include/linux/device.h b/include/linux/device.h --- a/include/linux/device.h Thu Jul 3 18:15:38 2003 +++ b/include/linux/device.h Thu Jul 3 18:15:38 2003 @@ -216,6 +216,8 @@ extern int class_device_add(struct class_device *); extern void class_device_del(struct class_device *); +extern int class_device_rename(struct class_device *, char *); + extern struct class_device * class_device_get(struct class_device *); extern void class_device_put(struct class_device *);