Re: [Bonding-devel] [PATCH] bonding: fix multiple module load problem

Jay Vosburgh
2009-06-09T17:38:16Z

>Some users still load bond module multiple times to create bonding
>devices. This accidentally was broken when sysfs interface was added.

After looking at it, I think the multiple load stuff was broken
by the following:

commit b8a9787eddb0e4665f31dd1d64584732b2b5d051
Author: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri Jun 13 18:12:04 2008 -0700

bonding: Allow setting max_bonds to zero

Permit bonding to function rationally if max_bonds is set to
zero. This will load the module, but create no master devices (which can
be created via sysfs).

Requires some change to bond_create_sysfs; currently, the
netdev sysfs directory is determined from the first bonding device created,
but this is no longer possible. Instead, an interface from net/core is
created to create and destroy files in net_class.

Based on a patch submitted by Phil Oester <kernel@linuxaces.com>.
Modified by Jay Vosburgh to fix the sysfs issue mentioned above and to
update the documentation.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

So, the patch below should probably go to -stable, too.

>Note: sysfs and procfs still produce WARN() messages when this is done
>so the sysfs method is the recommended API.
>
>Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

>---
>Patch against 2.6.30-rc8
>
>--- a/drivers/net/bonding/bond_sysfs.c 2009-06-09 10:07:29.618979856 -0700
>+++ b/drivers/net/bonding/bond_sysfs.c 2009-06-09 10:18:04.039973238 -0700
>@@ -1538,6 +1538,7 @@ int bond_create_sysfs(void)
> printk(KERN_ERR
> "network device named %s already exists in sysfs",
> class_attr_bonding_masters.attr.name);
>+ ret = 0;
> }
>
> return ret;
>

-J

---
-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com