netns: fix error code when the nsid is already used
When the user tries to assign a specific nsid, idr_alloc() is called with the range [nsid, nsid+1]. If this nsid is already used, idr_alloc() returns ENOSPC (No space left on device). In our case, it's better to return EEXIST to make it clear that the nsid is not available. CC: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
4a7f7bc600
Коммит
10d486a30c
|
@ -642,6 +642,7 @@ static int rtnl_net_newid(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
rtnl_net_notifyid(net, RTM_NEWNSID, err);
|
||||
err = 0;
|
||||
} else if (err == -ENOSPC && nsid >= 0) {
|
||||
err = -EEXIST;
|
||||
NL_SET_BAD_ATTR(extack, tb[NETNSA_NSID]);
|
||||
NL_SET_ERR_MSG(extack, "The specified nsid is already used");
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче