369bc48dc5
Acquiring of IPFW_WLOCK is requried for cases when we are going to change some data that can be accessed during processing of packets flow. When we create new named object, there are not yet any rules, that references it, thus holding IPFW_UH_WLOCK is enough to safely update needed structures. When we destroy an object, we do this only when its reference counter becomes zero. And it is safe to not acquire IPFW_WLOCK, because noone references it. The another case is when we failed to finish some action and thus we are doing rollback and destroying an object, in this case it is still not referenced by rules and no need to acquire IPFW_WLOCK. This also fixes panic with INVARIANTS due to recursive IPFW_WLOCK acquiring. MFC after: 1 week Sponsored by: Yandex LLC |
||
---|---|---|
.. | ||
ip_fw_nat64.c | ||
ip_fw_nat64.h | ||
nat64_translate.c | ||
nat64_translate.h | ||
nat64lsn_control.c | ||
nat64lsn.c | ||
nat64lsn.h | ||
nat64stl_control.c | ||
nat64stl.c | ||
nat64stl.h |