On Wed, Jun 2, 2021 at 2:14 AM Christian Brauner christian.brauner@ubuntu.com wrote:
But the point is that ns->ops should never be accessed when that namespace type is disabled. Or in other words, the bug is that something in netns makes use of namespace features when they are disabled. If we handle ->ops being NULL we might be tapering over a real bug somewhere.
It is merely a protocol between fs/nsfs.c and other namespace users, so there is certainly no right or wrong here, the only question is which one is better.
Jakub's proposal in the other mail makes sense and falls in line with how the rest of the netns getters are implemented. For example get_net_ns_fd_fd():
It does not make any sense to me. get_net_ns() merely increases the netns refcount, which is certainly fine for init_net too, no matter CONFIG_NET_NS is enabled or disabled. Returning EOPNOTSUPP there is literally saying we do not support increasing init_net refcount, which is of course false.
struct net *get_net_ns_by_fd(int fd) { return ERR_PTR(-EINVAL); }
There is a huge difference between just increasing netns refcount and retrieving it by fd, right? I have no idea why you bring this up, calling them getters is missing their difference.
Thanks.