sysfs: kill an extra put in sysfs_create_link() failure path
authorTejun Heo <htejun@gmail.com>
Wed, 18 Jul 2007 07:14:45 +0000 (16:14 +0900)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 18 Jul 2007 22:49:50 +0000 (15:49 -0700)
commita1da4dfe35bc36c3bc9716d995c85b7983c38a76
tree6e24647ff074d564d55bfdbf811d413e6d5bfab9
parent2ee97caf0a6602f749ddbfdb1449e383e1212707
sysfs: kill an extra put in sysfs_create_link() failure path

There is a subtle bug in sysfs_create_link() failure path.  When
symlink creation fails because there's already a node with the same
name, the target sysfs_dirent is put twice - once by failure path of
sysfs_create_link() and once more when the symlink is released.

Fix it by making only the symlink node responsible for putting
target_sd.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Gabriel C <nix.or.die@googlemail.com>
Cc: Miles Lane <miles.lane@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/sysfs/symlink.c