summaryrefslogtreecommitdiffstats
path: root/fs/sysfs
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2012-01-31 06:40:26 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2012-01-31 11:30:48 -0800
commitd5c38b137ac8a6e3dbed13bc494d60df5b69dfc4 (patch)
tree70a21802c74e6bb0b2afe81a881da59a9582ef75 /fs/sysfs
parent07d251460bbf9752c6532af8c1a68328c199dd70 (diff)
downloadlinux-stable-d5c38b137ac8a6e3dbed13bc494d60df5b69dfc4.tar.gz
linux-stable-d5c38b137ac8a6e3dbed13bc494d60df5b69dfc4.tar.bz2
linux-stable-d5c38b137ac8a6e3dbed13bc494d60df5b69dfc4.zip
sysfs: Update the name hash when renaming sysfs entries
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>
Diffstat (limited to 'fs/sysfs')
-rw-r--r--fs/sysfs/dir.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index ea64d01400ac..dd3779cf3a3b 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -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. */