File tree Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -890,6 +890,18 @@ static inline struct nft_userdata *nft_userdata(const struct nft_rule *rule)
890
890
return (void * )& rule -> data [rule -> dlen ];
891
891
}
892
892
893
+ static inline void nft_set_elem_update_expr (const struct nft_set_ext * ext ,
894
+ struct nft_regs * regs ,
895
+ const struct nft_pktinfo * pkt )
896
+ {
897
+ struct nft_expr * expr ;
898
+
899
+ if (nft_set_ext_exists (ext , NFT_SET_EXT_EXPR )) {
900
+ expr = nft_set_ext_expr (ext );
901
+ expr -> ops -> eval (expr , regs , pkt );
902
+ }
903
+ }
904
+
893
905
/*
894
906
* The last pointer isn't really necessary, but the compiler isn't able to
895
907
* determine that the result of nft_expr_last() is always the same since it
Original file line number Diff line number Diff line change @@ -81,7 +81,6 @@ void nft_dynset_eval(const struct nft_expr *expr,
81
81
const struct nft_dynset * priv = nft_expr_priv (expr );
82
82
struct nft_set * set = priv -> set ;
83
83
const struct nft_set_ext * ext ;
84
- const struct nft_expr * sexpr ;
85
84
u64 timeout ;
86
85
87
86
if (priv -> op == NFT_DYNSET_OP_DELETE ) {
@@ -91,18 +90,13 @@ void nft_dynset_eval(const struct nft_expr *expr,
91
90
92
91
if (set -> ops -> update (set , & regs -> data [priv -> sreg_key ], nft_dynset_new ,
93
92
expr , regs , & ext )) {
94
- sexpr = NULL ;
95
- if (nft_set_ext_exists (ext , NFT_SET_EXT_EXPR ))
96
- sexpr = nft_set_ext_expr (ext );
97
-
98
93
if (priv -> op == NFT_DYNSET_OP_UPDATE &&
99
94
nft_set_ext_exists (ext , NFT_SET_EXT_EXPIRATION )) {
100
95
timeout = priv -> timeout ? : set -> timeout ;
101
96
* nft_set_ext_expiration (ext ) = get_jiffies_64 () + timeout ;
102
97
}
103
98
104
- if (sexpr != NULL )
105
- sexpr -> ops -> eval (sexpr , regs , pkt );
99
+ nft_set_elem_update_expr (ext , regs , pkt );
106
100
107
101
if (priv -> invert )
108
102
regs -> verdict .code = NFT_BREAK ;
You can’t perform that action at this time.
0 commit comments