|
@@ -107,12 +107,6 @@ clusterip_config_entry_put(struct net *net, struct clusterip_config *c)
|
|
|
|
|
|
local_bh_disable();
|
|
local_bh_disable();
|
|
if (refcount_dec_and_lock(&c->entries, &cn->lock)) {
|
|
if (refcount_dec_and_lock(&c->entries, &cn->lock)) {
|
|
- list_del_rcu(&c->list);
|
|
|
|
- spin_unlock(&cn->lock);
|
|
|
|
- local_bh_enable();
|
|
|
|
-
|
|
|
|
- unregister_netdevice_notifier(&c->notifier);
|
|
|
|
-
|
|
|
|
/* In case anyone still accesses the file, the open/close
|
|
/* In case anyone still accesses the file, the open/close
|
|
* functions are also incrementing the refcount on their own,
|
|
* functions are also incrementing the refcount on their own,
|
|
* so it's safe to remove the entry even if it's in use. */
|
|
* so it's safe to remove the entry even if it's in use. */
|
|
@@ -120,6 +114,12 @@ clusterip_config_entry_put(struct net *net, struct clusterip_config *c)
|
|
if (cn->procdir)
|
|
if (cn->procdir)
|
|
proc_remove(c->pde);
|
|
proc_remove(c->pde);
|
|
#endif
|
|
#endif
|
|
|
|
+ list_del_rcu(&c->list);
|
|
|
|
+ spin_unlock(&cn->lock);
|
|
|
|
+ local_bh_enable();
|
|
|
|
+
|
|
|
|
+ unregister_netdevice_notifier(&c->notifier);
|
|
|
|
+
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
local_bh_enable();
|
|
local_bh_enable();
|