linux/net/batman-adv
Sven Eckelmann f4acb1086b batman-adv: Avoid sysfs name collision for netns moves
The kobject_put is only removing the sysfs entry and corresponding entries
when its reference counter becomes zero. This tends to lead to collisions
when a device is moved between two different network namespaces because
some of the sysfs files have to be removed first and then added again to
the already moved sysfs entry.

    WARNING: CPU: 0 PID: 290 at lib/kobject.c:240 kobject_add_internal+0x5ec/0x8a0
    kobject_add_internal failed for batman_adv with -EEXIST, don't try to register things with the same name in the same directory.

But the caller of kobject_put can already remove the sysfs entry before it
does the kobject_put. This removal is done even when the reference counter
is not yet zero and thus avoids the problem.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2016-08-09 07:54:28 +02:00
..
Kconfig batman-adv: Add multicast optimization support for bridged setups 2016-06-30 10:29:43 +02:00
Makefile batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
bat_algo.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
bat_algo.h batman-adv: Fix bat_(iv|v) function declaration header 2016-06-30 10:29:43 +02:00
bat_iv_ogm.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
bat_iv_ogm.h batman-adv: Fix bat_(iv|v) function declaration header 2016-06-30 10:29:43 +02:00
bat_v.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
bat_v.h batman-adv: Fix bat_(iv|v) function declaration header 2016-06-30 10:29:43 +02:00
bat_v_elp.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
bat_v_elp.h batman-adv: Keep includes ordered by filename 2016-06-30 10:29:43 +02:00
bat_v_ogm.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
bat_v_ogm.h batman-adv: Include main.h in bat_v_ogm.h 2016-06-30 10:29:43 +02:00
bitarray.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
bitarray.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bridge_loop_avoidance.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
bridge_loop_avoidance.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
debugfs.c batman-adv: Add debugfs table for mcast flags 2016-06-30 10:29:43 +02:00
debugfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
distributed-arp-table.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
distributed-arp-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
fragmentation.c batman-adv: return netdev status in the TX path 2016-07-04 12:37:18 +02:00
fragmentation.h batman-adv: return netdev status in the TX path 2016-07-04 12:37:18 +02:00
gateway_client.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
gateway_client.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_common.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
gateway_common.h batman-adv: add throughput override attribute to hard_ifaces 2016-02-29 16:05:32 +08:00
hard-interface.c batman-adv: Revert "postpone sysfs removal when unregistering" 2016-08-09 07:54:27 +02:00
hard-interface.h batman-adv: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +08:00
hash.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
hash.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
icmp_socket.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
icmp_socket.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
log.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
log.h batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
main.c batman-adv: Define module rtnl link name 2016-08-09 07:54:26 +02:00
main.h batman-adv: Start new development cycle 2016-08-09 07:54:24 +02:00
multicast.c batman-adv: Add debugfs table for mcast flags 2016-06-30 10:29:43 +02:00
multicast.h batman-adv: Add debugfs table for mcast flags 2016-06-30 10:29:43 +02:00
netlink.c batman-adv: split routing API data structure in subobjects 2016-07-04 12:37:19 +02:00
netlink.h batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
network-coding.c batman-adv: Consolidate logging related functions 2016-06-30 10:29:43 +02:00
network-coding.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
originator.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
originator.h batman-adv: refactor batadv_neigh_node_* functions to follow common style 2016-06-30 10:29:43 +02:00
packet.h batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
routing.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
routing.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
send.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-07-24 00:53:32 -04:00
send.h batman-adv: remove ogm_emit and ogm_schedule API calls 2016-06-30 10:29:43 +02:00
soft-interface.c batman-adv: Revert "postpone sysfs removal when unregistering" 2016-08-09 07:54:27 +02:00
soft-interface.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
sysfs.c batman-adv: Avoid sysfs name collision for netns moves 2016-08-09 07:54:28 +02:00
sysfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
tp_meter.c batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
tp_meter.h batman-adv: throughput meter implementation 2016-07-04 12:37:18 +02:00
translation-table.c This feature patchset includes the following changes: 2016-07-04 23:33:59 -07:00
translation-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
tvlv.c batman-adv: return netdev status in the TX path 2016-07-04 12:37:18 +02:00
tvlv.h batman-adv: split tvlv into a separate file 2016-06-30 10:29:43 +02:00
types.h batman-adv: Revert "postpone sysfs removal when unregistering" 2016-08-09 07:54:27 +02:00