|
@@ -713,16 +713,12 @@ static int nft_flush_table(struct nft_ctx *ctx)
|
|
|
struct nft_chain *chain, *nc;
|
|
|
struct nft_set *set, *ns;
|
|
|
|
|
|
- list_for_each_entry_safe(chain, nc, &ctx->table->chains, list) {
|
|
|
+ list_for_each_entry(chain, &ctx->table->chains, list) {
|
|
|
ctx->chain = chain;
|
|
|
|
|
|
err = nft_delrule_by_chain(ctx);
|
|
|
if (err < 0)
|
|
|
goto out;
|
|
|
-
|
|
|
- err = nft_delchain(ctx);
|
|
|
- if (err < 0)
|
|
|
- goto out;
|
|
|
}
|
|
|
|
|
|
list_for_each_entry_safe(set, ns, &ctx->table->sets, list) {
|
|
@@ -735,6 +731,14 @@ static int nft_flush_table(struct nft_ctx *ctx)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ list_for_each_entry_safe(chain, nc, &ctx->table->chains, list) {
|
|
|
+ ctx->chain = chain;
|
|
|
+
|
|
|
+ err = nft_delchain(ctx);
|
|
|
+ if (err < 0)
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
err = nft_deltable(ctx);
|
|
|
out:
|
|
|
return err;
|