aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding
diff options
context:
space:
mode:
authorVeaceslav Falico <vfalico@redhat.com>2013-09-25 03:20:31 -0400
committerDavid S. Miller <davem@davemloft.net>2013-09-26 16:02:08 -0400
commit842d67a7b34ea735155812ecf0671a481284f358 (patch)
tree71b2de5b2ffda2fa7e41c1d9e9023eef51006394 /drivers/net/bonding
parent47701a36a3ed6d97e5bbe7ad72cceb49ca329d00 (diff)
net: expose the master link to sysfs, and remove it from bond
Currently, we can have only one master upper neighbour, so it would be useful to create a symlink to it in the sysfs device directory, the way that bonding now does it, for every device. Lower devices from bridge/team/etc will automagically get it, so we could rely on it. Also, remove the same functionality from bonding. CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> CC: "David S. Miller" <davem@davemloft.net> CC: Eric Dumazet <edumazet@google.com> CC: Jiri Pirko <jiri@resnulli.us> CC: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r--drivers/net/bonding/bond_sysfs.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 04d95d6f6c63..1c5724672204 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -172,24 +172,11 @@ int bond_create_slave_symlinks(struct net_device *master,
172 struct net_device *slave) 172 struct net_device *slave)
173{ 173{
174 char linkname[IFNAMSIZ+7]; 174 char linkname[IFNAMSIZ+7];
175 int ret = 0;
176 175
177 /* first, create a link from the slave back to the master */ 176 /* create a link from the master to the slave */
178 ret = sysfs_create_link(&(slave->dev.kobj), &(master->dev.kobj),
179 "master");
180 if (ret)
181 return ret;
182 /* next, create a link from the master to the slave */
183 sprintf(linkname, "slave_%s", slave->name); 177 sprintf(linkname, "slave_%s", slave->name);
184 ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj), 178 return sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj),
185 linkname); 179 linkname);
186
187 /* free the master link created earlier in case of error */
188 if (ret)
189 sysfs_remove_link(&(slave->dev.kobj), "master");
190
191 return ret;
192
193} 180}
194 181
195void bond_destroy_slave_symlinks(struct net_device *master, 182void bond_destroy_slave_symlinks(struct net_device *master,
@@ -197,7 +184,6 @@ void bond_destroy_slave_symlinks(struct net_device *master,
197{ 184{
198 char linkname[IFNAMSIZ+7]; 185 char linkname[IFNAMSIZ+7];
199 186
200 sysfs_remove_link(&(slave->dev.kobj), "master");
201 sprintf(linkname, "slave_%s", slave->name); 187 sprintf(linkname, "slave_%s", slave->name);
202 sysfs_remove_link(&(master->dev.kobj), linkname); 188 sysfs_remove_link(&(master->dev.kobj), linkname);
203} 189}