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 <da-x@gmx.net>


 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 *);
 
