Re: [PATCH 2/7] mark root hnode explicitly
flat view
From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2018-09-07 07:43:19
On Thu, Sep 06, 2018 at 07:57:25PM -0700, Cong Wang wrote:
quoted
- if (root_ht == ht) { + if (ht->is_root) {What's wrong with comparing pointers with root ht?
The fact that there may be more than one tcf_proto sharing tp->data.
quoted
NL_SET_ERR_MSG_MOD(extack, "Not allowed to delete root node"); return -EINVAL; }@@ -795,6 +797,10 @@ static int u32_set_parms(struct net *net, struct tcf_proto *tp, NL_SET_ERR_MSG_MOD(extack, "Link hash table not found"); return -EINVAL; } + if (ht_down->is_root) {root ht is saved in tp->root, so you can compare ht_down with it too, if you want. If this check is all what you need, you don't need an extra flag.
Again, *which* tp? We can trivially check that we are not linking to/deleting our own root, sure. But there's nothing to stop doing the same via another tcf_proto...