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

From: Jay Vosburgh <[email-masked]>
Date: Tue, 09 Jun 2009 10:37:58 -0700

>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 <[email-masked]>
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 <[email-masked]>.
    Modified by Jay Vosburgh to fix the sysfs issue mentioned above and to
    update the documentation.
    
    Signed-off-by: Phil Oester <[email-masked]>
    Signed-off-by: Jay Vosburgh <[email-masked]>
    Signed-off-by: Jeff Garzik <[email-masked]>

	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 <[email-masked]>

Signed-off-by: Jay Vosburgh <[email-masked]>

>---
>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, [email-masked]