Message ID | 20190320173332.18105-7-alban@kinvolk.io |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf-next,v1,1/7] tools: bpftool: fix infinite loop | expand |
2019-03-20 18:33 UTC+0100 ~ Alban Crequy <alban.crequy@gmail.com> > From: Alban Crequy <alban@kinvolk.io> > > Symptoms, when "dir" does not exist: > > $ sudo bpftool map create /sys/fs/bpf/dir/fooB type hash key 8 value 8 entries 8 name fooB flags 1 > $ echo $? > 255 > > This patch prints an error message when the map pinning fails. > > Signed-off-by: Alban Crequy <alban@kinvolk.io> > --- > tools/bpf/bpftool/map.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c > index 9befcabc299d..c825eb1bbf8f 100644 > --- a/tools/bpf/bpftool/map.c > +++ b/tools/bpf/bpftool/map.c > @@ -1305,8 +1305,10 @@ static int do_create(int argc, char **argv) > > err = do_pin_fd(fd, pinfile); > close(fd); > - if (err) > + if (err) { > + p_err("failed to pin map to %s", pinfile); > return err; > + } do_pin_fd() is already susceptible to print an error message, and this may lead to several messages (thus breaking JSON output). Instead, you could change do_pin_fd() to store the result from bpf_obj_pin(), compare it, and print the message there if non-0. > > if (json_output) > jsonw_null(json_wtr); >
diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index 9befcabc299d..c825eb1bbf8f 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -1305,8 +1305,10 @@ static int do_create(int argc, char **argv) err = do_pin_fd(fd, pinfile); close(fd); - if (err) + if (err) { + p_err("failed to pin map to %s", pinfile); return err; + } if (json_output) jsonw_null(json_wtr);