]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bonding: remove already created master sysfs link on failure
authorVeaceslav Falico <vfalico@redhat.com>
Tue, 26 Mar 2013 16:43:28 +0000 (17:43 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 10 Apr 2013 02:20:12 +0000 (03:20 +0100)
[ Upstream commit 9fe16b78ee17579cb4f333534cf7043e94c67024 ]

If slave sysfs symlink failes to be created - we end up without removing
the master sysfs symlink. Remove it in case of failure.

Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/bonding/bond_sysfs.c

index a549f360f56bb65f4602a99f6226542457d246cf..8d923d321f993a012853feca272df6ddcc2c1152 100644 (file)
@@ -184,6 +184,11 @@ int bond_create_slave_symlinks(struct net_device *master,
        sprintf(linkname, "slave_%s", slave->name);
        ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj),
                                linkname);
+
+       /* free the master link created earlier in case of error */
+       if (ret)
+               sysfs_remove_link(&(slave->dev.kobj), "master");
+
        return ret;
 
 }