Page MenuHomeFreeBSD

D54175.diff
No OneTemporary

D54175.diff

diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c
--- a/sys/net/if_ovpn.c
+++ b/sys/net/if_ovpn.c
@@ -2855,16 +2855,21 @@
ovpn_osd_jail_slot = osd_jail_register(NULL, methods);
break;
}
- case MOD_UNLOAD:
+ case MOD_UNLOAD: {
+ VNET_ITERATOR_DECL(vnet_iter);
+ VNET_LIST_RLOCK();
+ VNET_FOREACH(vnet_iter) {
+ struct if_clone *clone = VNET_VNET(vnet_iter, ovpn_cloner);
+ if (clone) {
+ ifc_detach_cloner(clone);
+ VNET_VNET(vnet_iter, ovpn_cloner) = NULL;
+ }
+ }
+ VNET_LIST_RUNLOCK();
if (ovpn_osd_jail_slot != 0)
osd_jail_deregister(ovpn_osd_jail_slot);
- CURVNET_SET(vnet0);
- if (V_ovpn_cloner != NULL) {
- ifc_detach_cloner(V_ovpn_cloner);
- V_ovpn_cloner = NULL;
- }
- CURVNET_RESTORE();
break;
+ }
default:
return (EOPNOTSUPP);
}

File Metadata

Mime Type
text/plain
Expires
Sun, May 17, 3:17 AM (4 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33171174
Default Alt Text
D54175.diff (791 B)

Event Timeline