summaryrefslogtreecommitdiff
path: root/net/netfilter/nft_objref.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2023-07-19 09:43:25 +0200
committerIngo Molnar <mingo@kernel.org>2023-07-19 09:43:25 +0200
commit752182b24bf4ffda1c5a8025515d53122d930bd8 (patch)
tree836031bb239fa1f2288e7ad089b030abea6a4838 /net/netfilter/nft_objref.c
parent48b5583719cdfbdee238f9549a6a1a47af2b0469 (diff)
parentfdf0eaf11452d72945af31804e2a1048ee1b574c (diff)
Merge tag 'v6.5-rc2' into sched/core, to pick up fixes
Sync with upstream fixes before applying EEVDF. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/netfilter/nft_objref.c')
-rw-r--r--net/netfilter/nft_objref.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/netfilter/nft_objref.c b/net/netfilter/nft_objref.c
index a48dd5b5d45b..509011b1ef59 100644
--- a/net/netfilter/nft_objref.c
+++ b/net/netfilter/nft_objref.c
@@ -41,8 +41,10 @@ static int nft_objref_init(const struct nft_ctx *ctx,
if (IS_ERR(obj))
return -ENOENT;
+ if (!nft_use_inc(&obj->use))
+ return -EMFILE;
+
nft_objref_priv(expr) = obj;
- obj->use++;
return 0;
}
@@ -72,7 +74,7 @@ static void nft_objref_deactivate(const struct nft_ctx *ctx,
if (phase == NFT_TRANS_COMMIT)
return;
- obj->use--;
+ nft_use_dec(&obj->use);
}
static void nft_objref_activate(const struct nft_ctx *ctx,
@@ -80,7 +82,7 @@ static void nft_objref_activate(const struct nft_ctx *ctx,
{
struct nft_object *obj = nft_objref_priv(expr);
- obj->use++;
+ nft_use_inc_restore(&obj->use);
}
static const struct nft_expr_ops nft_objref_ops = {