summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_thread.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2012-09-22 10:14:47 +0000
committerglebius <glebius@FreeBSD.org>2012-09-22 10:14:47 +0000
commitab6639fea0be0b5523a77127e0f9f567d5ede818 (patch)
tree42704265a07b2efb4d603f46e192696df357fe86 /sys/kern/kern_thread.c
parent9c41e27b31517f0c2ebdbd49332884444f2b3592 (diff)
downloadFreeBSD-src-ab6639fea0be0b5523a77127e0f9f567d5ede818.zip
FreeBSD-src-ab6639fea0be0b5523a77127e0f9f567d5ede818.tar.gz
When connection rate hits and we overload a source to a table,
we are actually editing table, which means editing rules, thus we need writer access to 'em. Fix this by offloading the update of table to the same taskqueue, we already use for flushing. Since taskqueues major task is now overloading, and flushing is optional, do mechanical rename s/flush/overload/ in the code related to the taskqueue. Since overloading tasks do unsafe referencing of rules, provide a bandaid in pf_purge_unlinked_rules(). If the latter sees any queued tasks, then it skips purging for this run. In table code: - Assert any lock in pfr_lookup_addr(). - Assert writer lock in pfr_route_kentry().
Diffstat (limited to 'sys/kern/kern_thread.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud