stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4.14 0/1] netfilter: Fix EBUSY when removing objref
@ 2023-05-19 19:28 Thadeu Lima de Souza Cascardo
  2023-05-19 19:28 ` [PATCH 4.14 1/1] netfilter: nf_tables: bogus EBUSY in helper removal from transaction Thadeu Lima de Souza Cascardo
  0 siblings, 1 reply; 3+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2023-05-19 19:28 UTC (permalink / raw)
  To: stable; +Cc: pablo, netfilter-devel

When removing a rule with an objref expression and the object it references in
the same batch, it will return EBUSY. The backported commit has a Fixes line
for one of the commits recently backported.

Pablo Neira Ayuso (1):
  netfilter: nf_tables: bogus EBUSY in helper removal from transaction

 net/netfilter/nft_objref.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 4.14 1/1] netfilter: nf_tables: bogus EBUSY in helper removal from transaction
  2023-05-19 19:28 [PATCH 4.14 0/1] netfilter: Fix EBUSY when removing objref Thadeu Lima de Souza Cascardo
@ 2023-05-19 19:28 ` Thadeu Lima de Souza Cascardo
  2023-05-26 18:33   ` Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2023-05-19 19:28 UTC (permalink / raw)
  To: stable; +Cc: pablo, netfilter-devel

From: Pablo Neira Ayuso <pablo@netfilter.org>

commit 8ffcd32f64633926163cdd07a7d295c500a947d1 upstream.

Proper use counter updates when activating and deactivating the object,
otherwise, this hits bogus EBUSY error.

Fixes: cd5125d8f518 ("netfilter: nf_tables: split set destruction in deactivate and destroy phase")
Reported-by: Laura Garcia <nevola@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
---
 net/netfilter/nft_objref.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/net/netfilter/nft_objref.c b/net/netfilter/nft_objref.c
index 49a067a67e72..5deb997db9bb 100644
--- a/net/netfilter/nft_objref.c
+++ b/net/netfilter/nft_objref.c
@@ -64,21 +64,34 @@ static int nft_objref_dump(struct sk_buff *skb, const struct nft_expr *expr)
 	return -1;
 }
 
-static void nft_objref_destroy(const struct nft_ctx *ctx,
-			       const struct nft_expr *expr)
+static void nft_objref_deactivate(const struct nft_ctx *ctx,
+				  const struct nft_expr *expr,
+				  enum nft_trans_phase phase)
 {
 	struct nft_object *obj = nft_objref_priv(expr);
 
+	if (phase == NFT_TRANS_COMMIT)
+		return;
+
 	obj->use--;
 }
 
+static void nft_objref_activate(const struct nft_ctx *ctx,
+				const struct nft_expr *expr)
+{
+	struct nft_object *obj = nft_objref_priv(expr);
+
+	obj->use++;
+}
+
 static struct nft_expr_type nft_objref_type;
 static const struct nft_expr_ops nft_objref_ops = {
 	.type		= &nft_objref_type,
 	.size		= NFT_EXPR_SIZE(sizeof(struct nft_object *)),
 	.eval		= nft_objref_eval,
 	.init		= nft_objref_init,
-	.destroy	= nft_objref_destroy,
+	.activate	= nft_objref_activate,
+	.deactivate	= nft_objref_deactivate,
 	.dump		= nft_objref_dump,
 };
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 4.14 1/1] netfilter: nf_tables: bogus EBUSY in helper removal from transaction
  2023-05-19 19:28 ` [PATCH 4.14 1/1] netfilter: nf_tables: bogus EBUSY in helper removal from transaction Thadeu Lima de Souza Cascardo
@ 2023-05-26 18:33   ` Greg KH
  0 siblings, 0 replies; 3+ messages in thread
From: Greg KH @ 2023-05-26 18:33 UTC (permalink / raw)
  To: Thadeu Lima de Souza Cascardo; +Cc: stable, pablo, netfilter-devel

On Fri, May 19, 2023 at 04:28:59PM -0300, Thadeu Lima de Souza Cascardo wrote:
> From: Pablo Neira Ayuso <pablo@netfilter.org>
> 
> commit 8ffcd32f64633926163cdd07a7d295c500a947d1 upstream.
> 
> Proper use counter updates when activating and deactivating the object,
> otherwise, this hits bogus EBUSY error.
> 
> Fixes: cd5125d8f518 ("netfilter: nf_tables: split set destruction in deactivate and destroy phase")
> Reported-by: Laura Garcia <nevola@gmail.com>
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
> ---
>  net/netfilter/nft_objref.c | 19 ++++++++++++++++---
>  1 file changed, 16 insertions(+), 3 deletions(-)
> 

Now queued up, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-05-26 18:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-19 19:28 [PATCH 4.14 0/1] netfilter: Fix EBUSY when removing objref Thadeu Lima de Souza Cascardo
2023-05-19 19:28 ` [PATCH 4.14 1/1] netfilter: nf_tables: bogus EBUSY in helper removal from transaction Thadeu Lima de Souza Cascardo
2023-05-26 18:33   ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).