Skip to contentSkip to conversation

sysfs rename dir problem

RFC New John Zielinski 1 participant 1 message May 23, 2004 Driver core

lore
Share & tools
lore
#0 lore raw

RFC 1/1 sysfs rename dir problem

In the sysfs_rename_dir function if something goes wrong then the directory name would no longer match the internal kobj name. Here's a patch I made to fix that but I'm not sure if it's 100% correct.

John

fs/sysfs/dir.c +8 -2
diff -urNX dontdiff linux-2.6.6/fs/sysfs/dir.c linux/fs/sysfs/dir.c
@@ -169,8 +169,14 @@
 	down(&parent->d_inode->i_sem);
 
 	new_dentry = sysfs_get_dentry(parent, new_name);
-	d_move(kobj->dentry, new_dentry);
-	kobject_set_name(kobj,new_name);
+	if (!IS_ERR(new_dentry)) {
+		if (kobject_set_name(kobj,new_name))
+			d_move(kobj->dentry, new_dentry);
+		else {
+			d_delete(new_dentry);
+			dput(new_dentry);
+		}
+	}
 	up(&parent->d_inode->i_sem);	
 }