netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Bonding on bond
@ 2011-01-19 20:33 Nicolas de Pesloüan
  2011-01-20 15:31 ` Jiri Bohac
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas de Pesloüan @ 2011-01-19 20:33 UTC (permalink / raw)
  To: Jiri Bohac
  Cc: Jay Vosburgh, bonding-devel@lists.sourceforge.net,
	netdev@vger.kernel.org

Le 19/01/2011 16:49, Jiri Bohac a écrit :
 > On Tue, Jan 18, 2011 at 09:07:20AM +0100, Nicolas de Pesloüan wrote:
 >> Staking bond is not supported. Currently, no setup is know to
 >> require stacking bond.

 > I agree. This question and weird bugreports from people trying
 > this come up over and over. How about this patch?

Why not. Adding this to the documentation should also help.

 > bonding: prohibit enslaving of bonding masters
 >
 > Nested bonding is not supported and will result in strange problems, e.g.:
 > - netif_receive_skb() will not properly change skb->dev to point to the
 >   uppoer-most bonding master
 > - arp monitor will not work (dev->last_rx is only updated by hardware drivers)
 > - accidentally enslaving a bonding master to itself will cause an infinite
 >   recursion in the TX path
 >
 > This patch prevents this by prohibiting a bonding master from being further enslaved.
 >
 > Signed-off-by: Jiri Bohac <jbohac@suse.cz>
 >
 > diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
 > index b1025b8..d4d5f42 100644
 > --- a/drivers/net/bonding/bond_main.c
 > +++ b/drivers/net/bonding/bond_main.c
 > @@ -1448,8 +1448,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 >  	}
 >
 >  	/* already enslaved */
 > -	if (slave_dev->flags & IFF_SLAVE) {
 > -		pr_debug("Error, Device was already enslaved\n");
 > +	if (slave_dev->priv_flags & IFF_BONDING) {
 > +		pr_debug("Error, Device already enslaved or a bonding master\n");

Even if it is possible to test for slave and for master with a single condition (IFF_BONDING), I 
suggest to split the tests and the error messages, to give end user the best possible diagnostic.

If the device is already a master, let's say it.
If the device is already enslaved, let's continue to say it. It might even be better to give the 
name of the other master that already own this slave.

 >  		return -EBUSY;
 >  	}
 >
 >
 >
 > --
 > Jiri Bohac <jbohac@suse.cz>
 > SUSE Labs, SUSE CZ

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-02-02 10:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-19 20:33 Bonding on bond Nicolas de Pesloüan
2011-01-20 15:31 ` Jiri Bohac
2011-01-20 16:12   ` Nicolas de Pesloüan
2011-01-20 19:53     ` Jay Vosburgh
2011-01-22 22:57       ` Nicolas de Pesloüan
2011-01-29  0:38         ` Jay Vosburgh
2011-02-02 10:19           ` Nicolas de Pesloüan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).