sysfs: Update the name hash when renaming sysfs entries
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 31 Jan 2012 14:40:26 +0000 (06:40 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 31 Jan 2012 19:30:48 +0000 (11:30 -0800)
This fixes a bug introduced with sysfs name hashes where renaming a
network device appears to succeed but silently makes the sysfs files for
that network device inaccessible.

In at least one configuration this bug has stopped networking from
coming up during boot.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Tested-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/sysfs/dir.c

index ea64d01400acf5e39b42bc96d37e9288920623f5..dd3779cf3a3b52325208a00ae4704360945d19fc 100644 (file)
@@ -872,6 +872,7 @@ int sysfs_rename(struct sysfs_dirent *sd,
 
                dup_name = sd->s_name;
                sd->s_name = new_name;
+               sd->s_hash = sysfs_name_hash(sd->s_ns, sd->s_name);
        }
 
        /* Move to the appropriate place in the appropriate directories rbtree. */