Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60b8cabd authored by Kay Sievers's avatar Kay Sievers Committed by Greg Kroah-Hartman
Browse files

Driver Core: fix bug in device_rename() for SYSFS_DEPRECATED=y



This should fix the sysfs warnings that renaming network devices is
causing to show up with CONFIG_SYSFS_DEPRECATED=y

The code just shouldn't run if class devices are real directories, it's
an update for the symlink in the class directory. Nobody noticed that as
long as the creation of sysfs files silently failed, and we both missed
it before the merge, because we don't run SYSFS_DEPRECATED=y.        

Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: David Miller <davem@davemloft.net>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Tejun Heo <htejun@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 78e9d367
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1228,18 +1228,18 @@ int device_rename(struct device *dev, char *new_name)
			sysfs_remove_link(&dev->parent->kobj, old_class_name);
			sysfs_remove_link(&dev->parent->kobj, old_class_name);
		}
		}
	}
	}
#endif
#else

	if (dev->class) {
	if (dev->class) {
		sysfs_remove_link(&dev->class->subsys.kobj, old_device_name);
		sysfs_remove_link(&dev->class->subsys.kobj, old_device_name);
		error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj,
		error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj,
					  dev->bus_id);
					  dev->bus_id);
		if (error) {
		if (error) {
			/* Uh... how to unravel this if restoring can fail? */
			dev_err(dev, "%s: sysfs_create_symlink failed (%d)\n",
			dev_err(dev, "%s: sysfs_create_symlink failed (%d)\n",
				__FUNCTION__, error);
				__FUNCTION__, error);
		}
		}
	}
	}
#endif

out:
out:
	put_device(dev);
	put_device(dev);