netfilter: nfnetlink: pass down netns pointer to commit() and abort() callbacks
Adapt callsites to avoid recurrent lookup of the netns pointer. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Родитель
7b8002a151
Коммит
5913beaf0d
|
@ -26,8 +26,8 @@ struct nfnetlink_subsystem {
|
|||
__u8 subsys_id; /* nfnetlink subsystem ID */
|
||||
__u8 cb_count; /* number of callbacks */
|
||||
const struct nfnl_callback *cb; /* callback for individual types */
|
||||
int (*commit)(struct sk_buff *skb);
|
||||
int (*abort)(struct sk_buff *skb);
|
||||
int (*commit)(struct net *net, struct sk_buff *skb);
|
||||
int (*abort)(struct net *net, struct sk_buff *skb);
|
||||
};
|
||||
|
||||
int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);
|
||||
|
|
|
@ -3865,9 +3865,8 @@ static void nf_tables_commit_release(struct nft_trans *trans)
|
|||
kfree(trans);
|
||||
}
|
||||
|
||||
static int nf_tables_commit(struct sk_buff *skb)
|
||||
static int nf_tables_commit(struct net *net, struct sk_buff *skb)
|
||||
{
|
||||
struct net *net = sock_net(skb->sk);
|
||||
struct nft_trans *trans, *next;
|
||||
struct nft_trans_elem *te;
|
||||
|
||||
|
@ -4002,9 +4001,8 @@ static void nf_tables_abort_release(struct nft_trans *trans)
|
|||
kfree(trans);
|
||||
}
|
||||
|
||||
static int nf_tables_abort(struct sk_buff *skb)
|
||||
static int nf_tables_abort(struct net *net, struct sk_buff *skb)
|
||||
{
|
||||
struct net *net = sock_net(skb->sk);
|
||||
struct nft_trans *trans, *next;
|
||||
struct nft_trans_elem *te;
|
||||
|
||||
|
|
|
@ -425,15 +425,15 @@ next:
|
|||
}
|
||||
done:
|
||||
if (status & NFNL_BATCH_REPLAY) {
|
||||
ss->abort(oskb);
|
||||
ss->abort(net, oskb);
|
||||
nfnl_err_reset(&err_list);
|
||||
nfnl_unlock(subsys_id);
|
||||
kfree_skb(skb);
|
||||
goto replay;
|
||||
} else if (status == NFNL_BATCH_DONE) {
|
||||
ss->commit(oskb);
|
||||
ss->commit(net, oskb);
|
||||
} else {
|
||||
ss->abort(oskb);
|
||||
ss->abort(net, oskb);
|
||||
}
|
||||
|
||||
nfnl_err_deliver(&err_list, oskb);
|
||||
|
|
Загрузка…
Ссылка в новой задаче