pf: remove the flags argument from pf_unlink_state
All consumers call it with PF_ENTER_LOCKED. Reviewed by: kp Sponsored by: Rubicon Communications, LLC ("Netgate")
This commit is contained in:
parent
edf6dd82e9
commit
8f3d786cb3
@ -1915,9 +1915,7 @@ extern void pf_unload_vnet_purge(void);
|
||||
extern void pf_intr(void *);
|
||||
extern void pf_purge_expired_src_nodes(void);
|
||||
|
||||
extern int pf_unlink_state(struct pf_kstate *, u_int);
|
||||
#define PF_ENTER_LOCKED 0x00000001
|
||||
#define PF_RETURN_LOCKED 0x00000002
|
||||
extern int pf_unlink_state(struct pf_kstate *);
|
||||
extern int pf_state_insert(struct pfi_kkif *,
|
||||
struct pfi_kkif *,
|
||||
struct pf_state_key *,
|
||||
|
@ -759,7 +759,7 @@ pfsync_in_clr(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
|
||||
LIST_FOREACH(s, &ih->states, entry) {
|
||||
if (s->creatorid == creatorid) {
|
||||
s->state_flags |= PFSTATE_NOSYNC;
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
goto relock;
|
||||
}
|
||||
}
|
||||
@ -1118,7 +1118,7 @@ pfsync_in_del(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
|
||||
continue;
|
||||
}
|
||||
st->state_flags |= PFSTATE_NOSYNC;
|
||||
pf_unlink_state(st, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(st);
|
||||
}
|
||||
|
||||
return (len);
|
||||
@ -1150,7 +1150,7 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count)
|
||||
}
|
||||
|
||||
st->state_flags |= PFSTATE_NOSYNC;
|
||||
pf_unlink_state(st, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(st);
|
||||
}
|
||||
|
||||
return (len);
|
||||
|
@ -1995,14 +1995,11 @@ pf_src_tree_remove_state(struct pf_kstate *s)
|
||||
* unlocked, since it needs to go through key hash locking.
|
||||
*/
|
||||
int
|
||||
pf_unlink_state(struct pf_kstate *s, u_int flags)
|
||||
pf_unlink_state(struct pf_kstate *s)
|
||||
{
|
||||
struct pf_idhash *ih = &V_pf_idhash[PF_IDHASH(s)];
|
||||
|
||||
if ((flags & PF_ENTER_LOCKED) == 0)
|
||||
PF_HASHROW_LOCK(ih);
|
||||
else
|
||||
PF_HASHROW_ASSERT(ih);
|
||||
PF_HASHROW_ASSERT(ih);
|
||||
|
||||
if (s->timeout == PFTM_UNLINKED) {
|
||||
/*
|
||||
@ -2091,7 +2088,7 @@ pf_purge_expired_states(u_int i, int maxcheck)
|
||||
LIST_FOREACH(s, &ih->states, entry) {
|
||||
if (pf_state_expires(s) <= time_uptime) {
|
||||
V_pf_status.states -=
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
goto relock;
|
||||
}
|
||||
s->rule.ptr->rule_ref |= PFRULE_REFS;
|
||||
@ -4992,7 +4989,7 @@ pf_test_state_tcp(struct pf_kstate **state, int direction, struct pfi_kkif *kif,
|
||||
}
|
||||
/* XXX make sure it's the same direction ?? */
|
||||
pf_set_protostate(*state, PF_PEER_BOTH, TCPS_CLOSED);
|
||||
pf_unlink_state(*state, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(*state);
|
||||
*state = NULL;
|
||||
return (PF_DROP);
|
||||
}
|
||||
|
@ -2041,7 +2041,7 @@ pf_kill_matching_state(struct pf_state_key_cmp *key, int dir)
|
||||
return (0);
|
||||
}
|
||||
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
return (1);
|
||||
}
|
||||
|
||||
@ -2138,7 +2138,7 @@ pf_killstates_row(struct pf_kstate_kill *psk, struct pf_idhash *ih)
|
||||
match_key.port[1] = s->key[idx]->port[0];
|
||||
}
|
||||
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
killed++;
|
||||
|
||||
if (psk->psk_kill_match)
|
||||
@ -5040,7 +5040,7 @@ pf_clear_all_states(void)
|
||||
s->timeout = PFTM_PURGE;
|
||||
/* Don't send out individual delete messages. */
|
||||
s->state_flags |= PFSTATE_NOSYNC;
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
goto relock;
|
||||
}
|
||||
PF_HASHROW_UNLOCK(ih);
|
||||
@ -5227,7 +5227,7 @@ pf_clear_states(const struct pf_kstate_kill *kill)
|
||||
* delete messages.
|
||||
*/
|
||||
s->state_flags |= PFSTATE_NOSYNC;
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
killed++;
|
||||
|
||||
if (kill->psk_kill_match)
|
||||
@ -5255,7 +5255,7 @@ pf_killstates(struct pf_kstate_kill *kill, unsigned int *killed)
|
||||
kill->psk_pfcmp.creatorid = V_pf_status.hostid;
|
||||
if ((s = pf_find_state_byid(kill->psk_pfcmp.id,
|
||||
kill->psk_pfcmp.creatorid))) {
|
||||
pf_unlink_state(s, PF_ENTER_LOCKED);
|
||||
pf_unlink_state(s);
|
||||
*killed = 1;
|
||||
}
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user