Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a64d49c3 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

bonding: Manage /proc/net/bonding/ entries from the netdev events



It was recently reported that moving a bonding device between network
namespaces causes warnings from /proc.  It turns out after the move we
were trying to add and to remove the /proc/net/bonding entries from the
wrong network namespace.

Move the bonding /proc registration code into the NETDEV_REGISTER and
NETDEV_UNREGISTER events where the proc registration and unregistration
will always happen at the right time.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 684901a6
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -3227,6 +3227,12 @@ static int bond_master_netdev_event(unsigned long event,
	switch (event) {
	case NETDEV_CHANGENAME:
		return bond_event_changename(event_bond);
	case NETDEV_UNREGISTER:
		bond_remove_proc_entry(event_bond);
		break;
	case NETDEV_REGISTER:
		bond_create_proc_entry(event_bond);
		break;
	default:
		break;
	}
@@ -4411,8 +4417,6 @@ static void bond_uninit(struct net_device *bond_dev)

	bond_work_cancel_all(bond);

	bond_remove_proc_entry(bond);

	bond_debug_unregister(bond);

	__hw_addr_flush(&bond->mc_list);
@@ -4814,7 +4818,6 @@ static int bond_init(struct net_device *bond_dev)

	bond_set_lockdep_class(bond_dev);

	bond_create_proc_entry(bond);
	list_add_tail(&bond->bond_list, &bn->dev_list);

	bond_prepare_sysfs_group(bond);