Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

netfilter: nf_tables: fix update chain error

# nft add table filter
# nft add chain filter c1
# nft rename chain filter c1 c2

Error: Could not process rule: No such file or directory
rename chain filter c1 c2
^^^^^^^^^^^^^^^^^^^^^^^^^^

# nft add chain filter c2
# nft rename chain filter c1 c2
# nft list table filter

table ip filter {
chain c2 {
}

chain c2 {
}
}

Fixes: 664b0f8cd8 ("netfilter: nf_tables: add generation mask to chains")
Signed-off-by: JingPiao Chen <chenjingpiao@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>

authored by

JingPiao Chen and committed by
Pablo Neira Ayuso
0d18779b e5173418

+2 -2
+2 -2
net/netfilter/nf_tables_api.c
··· 1487 1487 1488 1488 chain2 = nf_tables_chain_lookup(table, nla[NFTA_CHAIN_NAME], 1489 1489 genmask); 1490 - if (IS_ERR(chain2)) 1491 - return PTR_ERR(chain2); 1490 + if (!IS_ERR(chain2)) 1491 + return -EEXIST; 1492 1492 } 1493 1493 1494 1494 if (nla[NFTA_CHAIN_COUNTERS]) {