]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
netfilter: nf_tables: reduce trans->ctx.chain references
authorFlorian Westphal <fw@strlen.de>
Mon, 13 May 2024 13:00:49 +0000 (15:00 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 25 Jun 2024 18:40:47 +0000 (20:40 +0200)
These objects are the trans_chain subtype, so use the helper instead
of referencing trans->ctx, which will be removed soon.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index 3e5980f0bf71f2ae8acbee7f91345a39ae2eb108..bd311b37fc6105647622e5021adb4d2dee9668ea 100644 (file)
@@ -1262,7 +1262,7 @@ static bool nft_table_pending_update(const struct nft_ctx *ctx)
                    ((trans->msg_type == NFT_MSG_NEWCHAIN &&
                      nft_trans_chain_update(trans)) ||
                     (trans->msg_type == NFT_MSG_DELCHAIN &&
-                     nft_is_base_chain(trans->ctx.chain))))
+                     nft_is_base_chain(nft_trans_chain(trans)))))
                        return true;
        }
 
@@ -2815,13 +2815,11 @@ static struct nft_chain *nft_chain_lookup_byid(const struct net *net,
        struct nft_trans *trans;
 
        list_for_each_entry(trans, &nft_net->commit_list, list) {
-               struct nft_chain *chain = trans->ctx.chain;
-
                if (trans->msg_type == NFT_MSG_NEWCHAIN &&
-                   chain->table == table &&
+                   nft_trans_chain(trans)->table == table &&
                    id == nft_trans_chain_id(trans) &&
-                   nft_active_genmask(chain, genmask))
-                       return chain;
+                   nft_active_genmask(nft_trans_chain(trans), genmask))
+                       return nft_trans_chain(trans);
        }
        return ERR_PTR(-ENOENT);
 }
@@ -10625,9 +10623,9 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
                                        break;
                                }
                                nft_use_dec_restore(&table->use);
-                               nft_chain_del(trans->ctx.chain);
+                               nft_chain_del(nft_trans_chain(trans));
                                nf_tables_unregister_hook(trans->ctx.net, table,
-                                                         trans->ctx.chain);
+                                                         nft_trans_chain(trans));
                        }
                        break;
                case NFT_MSG_DELCHAIN:
@@ -10637,7 +10635,7 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
                                            &nft_trans_basechain(trans)->hook_list);
                        } else {
                                nft_use_inc_restore(&table->use);
-                               nft_clear(trans->ctx.net, trans->ctx.chain);
+                               nft_clear(trans->ctx.net, nft_trans_chain(trans));
                        }
                        nft_trans_destroy(trans);
                        break;