Thread (10 messages) flat view 10 messages, 5 authors, 2025-02-07

Re: [PATCH net 2/2] net: enhance error message for 'netns local' iface

From: Nicolas Dichtel <hidden>
Date: 2025-02-07 09:08:12

Le 07/02/2025 à 00:02, Andrew Lunn a écrit :
On Thu, Feb 06, 2025 at 05:50:27PM +0100, Nicolas Dichtel wrote:
quoted
The current message is "Invalid argument". Let's help the user by
explaining the error.

Signed-off-by: Nicolas Dichtel <redacted>
---
 net/core/rtnetlink.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 5032e65b8faa..91b358bdfe5c 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -3024,8 +3024,12 @@ static int do_setlink(const struct sk_buff *skb, struct net_device *dev,
 		new_ifindex = nla_get_s32_default(tb[IFLA_NEW_IFINDEX], 0);
 
 		err = __dev_change_net_namespace(dev, tgt_net, pat, new_ifindex);
-		if (err)
+		if (err) {
+			if (dev->netns_local)
+				NL_SET_ERR_MSG(extack,
+					       "The interface has the 'netns local' property");
This seems to have the wrong order. Why even try calling
__dev_change_net_namespace() if you know it is going to fail?

Maybe this NL_SET_ERR_MSG() should be pushed into
__dev_change_net_namespace()? You could then return useful messages if
the altnames conflict, the ifindex is already in use, etc.
Users of dev_change_net_namespace() are not netlink users, so I kept the same
API. I will plumb the extack into __dev_change_net_namespace().


Thanks,
Nicolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help