aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sysfs
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2007-01-08 14:16:44 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2007-02-07 13:37:11 -0500
commitc744aeae9d173a953b771a7ad5c872f91fa99dec (patch)
tree83d36e211ff6d0109f3aeb29d4fd1bb2dbb2a9b3 /fs/sysfs
parent717e48c29d9a58f4d31c1651bec364212da5f6b2 (diff)
driver core: Allow device_move(dev, NULL).
If we allow NULL as the new parent in device_move(), we need to make sure that the device is placed into the same place as it would if it was newly registered: - Consider the device virtual tree. In order to be able to reuse code, setup_parent() has been tweaked a bit. - kobject_move() can fall back to the kset's kobject. - sysfs_move_dir() uses the sysfs root dir as fallback. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs/sysfs')
-rw-r--r--fs/sysfs/dir.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 511edef8b321..2bab1b4ddf5a 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -378,12 +378,10 @@ int sysfs_move_dir(struct kobject *kobj, struct kobject *new_parent)
378 struct sysfs_dirent *new_parent_sd, *sd; 378 struct sysfs_dirent *new_parent_sd, *sd;
379 int error; 379 int error;
380 380
381 if (!new_parent)
382 return -EINVAL;
383
384 old_parent_dentry = kobj->parent ? 381 old_parent_dentry = kobj->parent ?
385 kobj->parent->dentry : sysfs_mount->mnt_sb->s_root; 382 kobj->parent->dentry : sysfs_mount->mnt_sb->s_root;
386 new_parent_dentry = new_parent->dentry; 383 new_parent_dentry = new_parent ?
384 new_parent->dentry : sysfs_mount->mnt_sb->s_root;
387 385
388again: 386again:
389 mutex_lock(&old_parent_dentry->d_inode->i_mutex); 387 mutex_lock(&old_parent_dentry->d_inode->i_mutex);