Re: [PATCH v5 net-next 11/16] net: propagate errors from dev_get_stats
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-01-08 17:23:30
On Fri, Jan 08, 2021 at 06:31:54PM +0200, Vladimir Oltean wrote:
From: Vladimir Oltean <vladimir.oltean@nxp.com> dev_get_stats can now return error codes. Take the remaining call sites where those errors can be propagated, which are all trivial, and convert them to look at that error code and stop processing. The effects of simulating a kernel error (returning -ENOMEM) upon existing programs or kernel interfaces: - cat /proc/net/dev prints up until the interface that failed, and there it returns: cat: read error: Cannot allocate memory - ifstat simply returns this and prints nothing: Error: Buffer too small for object. Dump terminated - ip -s -s link show behaves the same as ifstat.
Note that at first I did not understand why ifstat and "ip -s -s link show" return this message. But in the meantime I figured that it was due to rtnetlink still returning -EMSGSIZE. That is fixed in this patch series, but I forgot to update the commit message to reflect it. The current output from these two commands is: $ ifstat RTNETLINK answers: Cannot allocate memory Dump terminated $ ip -s -s link show RTNETLINK answers: Cannot allocate memory Dump terminated
- ifconfig prints only the info for the interfaces whose statistics did not fail. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- Changes in v5: - Actually propagate errors from bonding and net_failover from within this patch. - Properly propagating the dev_get_stats() error code from rtnl_fill_stats now, and not -EMSGSIZE. Changes in v4: Patch is new (Eric's suggestion).