iproute2/lib
Andrea Claudi 1e25de9a92 lib/namespace: fix ip -all netns return code
When ip -all netns {del,exec} are called and no netns is present, ip
exit with status 0. However this does not happen if no netns has been
created since boot time: in that case, indeed, the NETNS_RUN_DIR is not
present and netns_foreach() exit with code 1.

$ ls /var/run/netns
ls: cannot access '/var/run/netns': No such file or directory
$ ip -all netns exec ip link show
$ echo $?
1
$ ip -all netns del
$ echo $?
1
$ ip netns add test
$ ip netns del test
$ ip -all netns del
$ echo $?
0
$ ls -a /var/run/netns
.  ..

This leaves us in the unpleasant situation where the same command, when
no netns is present, does the same stuff (in this case, nothing), but
exit with two different statuses.

Fix this treating ENOENT in a different way from other errors, similarly
to what we already do in ipnetns.c netns_identify_pid()

Fixes: e998e118dd ("lib: Exec func on each netns")
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2021-02-22 18:17:56 -08:00
..
Makefile build: Fix link errors on some systems 2021-01-18 12:28:47 -08:00
bpf_glue.c vrf: fix ip vrf exec with libbpf 2021-01-18 12:32:17 -08:00
bpf_legacy.c lib: add libbpf support 2020-11-24 22:14:05 -07:00
bpf_libbpf.c lib: add libbpf support 2020-11-24 22:14:05 -07:00
cg_map.c lib: ignore invalid mounts in cg_init_map 2020-10-11 23:02:35 -07:00
color.c lib/color: make local functions static 2018-11-19 11:42:44 -08:00
coverity_model.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
exec.c netns: switch netns in the child when executing commands 2019-06-20 14:30:41 -07:00
fs.c lib: fix checking of returned file handle size for cgroup 2020-07-06 11:05:54 -07:00
inet_proto.c ip: add a new parameter -Numeric 2019-06-18 08:37:47 -07:00
json_print.c build: Fix link errors on some systems 2021-01-18 12:28:47 -08:00
json_print_math.c build: Fix link errors on some systems 2021-01-18 12:28:47 -08:00
json_writer.c json: fix backslash escape typo in jsonw_puts 2019-07-19 10:48:38 -07:00
libgenl.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
libnetlink.c libnetlink: define __aligned conditionally 2020-10-28 10:24:02 -07:00
ll_addr.c lib/ll_addr: whitespace and indent cleanup 2018-11-19 11:42:44 -08:00
ll_map.c ip: allow to use alternative names as handle 2019-10-28 07:35:29 -07:00
ll_proto.c m_mpls: add mac_push action 2020-10-20 08:57:08 -06:00
ll_types.c ip: add a new parameter -Numeric 2019-06-18 08:37:47 -07:00
mnl_utils.c lib: Extract from devlink/mnlg a helper, mnlu_socket_recv_run() 2020-11-13 19:43:15 -07:00
mpls_ntop.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
mpls_pton.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
names.c tc: drop unused name_to_id function 2018-11-19 11:42:44 -08:00
namespace.c lib/namespace: fix ip -all netns return code 2021-02-22 18:17:56 -08:00
rt_names.c iplink: add support for protodown reason 2020-09-01 19:52:13 -06:00
utils.c build: Fix link errors on some systems 2021-01-18 12:28:47 -08:00
utils_math.c build: Fix link errors on some systems 2021-01-18 12:28:47 -08:00