mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-12 16:58:53 +00:00
bonding: elminate bad refcount code
The "expected_refcount" stuff in bonding sysfs module is a mistake. Sysfs does proper refcounting, and it is okay to remove a bond device that has some user process holding the file open. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3d632c3f28
commit
6d7ab43ccc
@ -40,12 +40,6 @@
|
||||
#define to_dev(obj) container_of(obj, struct device, kobj)
|
||||
#define to_bond(cd) ((struct bonding *)(netdev_priv(to_net_dev(cd))))
|
||||
|
||||
/*---------------------------- Declarations -------------------------------*/
|
||||
|
||||
static int expected_refcount = -1;
|
||||
|
||||
/*------------------------------ Functions --------------------------------*/
|
||||
|
||||
/*
|
||||
* "show" function for the bond_masters attribute.
|
||||
* The class parameter is ignored.
|
||||
@ -112,18 +106,6 @@ static ssize_t bonding_store_bonds(struct class *cls,
|
||||
|
||||
list_for_each_entry(bond, &bond_dev_list, bond_list)
|
||||
if (strnicmp(bond->dev->name, ifname, IFNAMSIZ) == 0) {
|
||||
/* check the ref count on the bond's kobject.
|
||||
* If it's > expected, then there's a file open,
|
||||
* and we have to fail.
|
||||
*/
|
||||
if (atomic_read(&bond->dev->dev.kobj.kref.refcount)
|
||||
> expected_refcount){
|
||||
pr_info(DRV_NAME
|
||||
": Unable remove bond %s due to open references.\n",
|
||||
ifname);
|
||||
res = -EPERM;
|
||||
goto out_unlock;
|
||||
}
|
||||
pr_info(DRV_NAME
|
||||
": %s is being deleted...\n",
|
||||
bond->dev->name);
|
||||
@ -1579,9 +1561,6 @@ int bond_create_sysfs_entry(struct bonding *bond)
|
||||
if (err)
|
||||
printk(KERN_EMERG "eek! didn't create group!\n");
|
||||
|
||||
if (expected_refcount < 1)
|
||||
expected_refcount = atomic_read(&bond->dev->dev.kobj.kref.refcount);
|
||||
|
||||
return err;
|
||||
}
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user