Re: [PATCH iproute2-next 7/7] devlink: add scope filter to resource show
From: Or Har-Toov
Date: Sun Jun 14 2026 - 08:11:27 EST
On 11/06/2026 21:53, David Ahern wrote:
On 6/8/26 11:39 PM, Tariq Toukan wrote:
@@ -9010,13 +9029,29 @@ static int cmd_resource_show(struct dl *dl)
uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
struct nlmsghdr *nlh;
struct resource_ctx resource_ctx = {};
+ struct dl_opts *opts = &dl->opts;
int err;
- err = dl_argv_parse_with_selector(dl, &flags, DEVLINK_CMD_RESOURCE_DUMP,
- DL_OPT_HANDLE | DL_OPT_HANDLEP,
- 0, 0, 0);
- if (err)
- return err;
+ if (dl_argv_match(dl, "scope")) {
+ const char *scopestr;
+
+ dl_arg_inc(dl);
+ err = dl_argv_str(dl, &scopestr);
+ if (err)
+ return err;
+ err = resource_scope_get(scopestr, &opts->resource_scope_mask);
+ if (err)
+ return err;
+ opts->present |= DL_OPT_RESOURCE_SCOPE;
Comment from Claude that seems legit:
Issue found: In cmd_resource_show, the scope path sets opts->present |=
DL_OPT_RESOURCE_SCOPE without first clearing opts->present. In batch
mode, dl->opts is shared across commands, and the non-scope path
correctly resets opts->present via dl_argv_parse(). But the scope path
bypasses dl_argv_parse(), so stale bits (e.g. DL_OPT_HANDLE from a
previous dev show) remain. When dl_opts_put() runs, it writes the stale
DEVLINK_ATTR_BUS_NAME/DEV_NAME attributes into the dump request,
silently filtering to a single device instead of all devices. Fix: use =
instead of |=
Are you ok with the suggested resolution?
yes, thank you. let me know if I should resend.