On Wed, 2018-05-09 at 16:26 -0700, Dan Williams wrote: > On Wed, May 9, 2018 at 4:24 PM, Dave Jiang <[email protected]> wrote: > > > > > > On 05/09/2018 04:23 PM, Dan Williams wrote: > > > On Wed, May 9, 2018 at 4:17 PM, Verma, Vishal L > > > <[email protected]> wrote: > > > > On Fri, 2018-04-27 at 15:08 -0700, Dave Jiang wrote: > > > > > util_filter_walk() does the looping through of busses and > > > > > regions. > > > > > Removing > > > > > duplicate code in region ops and provide filter functions so we > > > > > can > > > > > utilize util_filter_walk() and share common code. > > > > > > > > > > Signed-off-by: Dave Jiang <[email protected]> > > > > > --- > > > > > ndctl/region.c | 59 ++++++++++++++++++++++++++++++++++------ > > > > > -------- > > > > > -------- > > > > > util/filter.h | 6 ++++++ > > > > > 2 files changed, 42 insertions(+), 23 deletions(-) > > > > > > > > > > diff --git a/ndctl/region.c b/ndctl/region.c > > > > > index 9fc90808..9fd07af6 100644 > > > > > --- a/ndctl/region.c > > > > > +++ b/ndctl/region.c > > > > > @@ -19,10 +19,7 @@ > > > > > #include <util/parse-options.h> > > > > > #include <ndctl/libndctl.h> > > > > > > > > > > -static struct { > > > > > - const char *bus; > > > > > - const char *type; > > > > > -} param; > > > > > +struct util_filter_params param; > > > > > > > > > > static const struct option region_options[] = { > > > > > OPT_STRING('b', "bus", ¶m.bus, "bus-id", > > > > > @@ -92,33 +89,49 @@ static int region_action(struct ndctl_region > > > > > *region, > > > > > enum device_action mode) > > > > > return 0; > > > > > } > > > > > > > > > > +static bool filter_bus(struct ndctl_bus *bus, struct > > > > > util_filter_ctx > > > > > *ctx) > > > > > +{ > > > > > + return true; > > > > > +} > > > > > + > > > > > > > > Instead of creating these trivial functions everywhere (also > > > > applies to > > > > namespaces.c, dimm.c), should we just leave fctx.bus_filter NULL. > > > > And fix > > > > util_filter_walk to check for fctx->ptr != NULL any time it calls > > > > one of > > > > the functions.. > > > > > > I think I'd prefer a common nop routine. That way individual are > > > forced to decide to use the nop or implement something. Leaving it > > > NULL may just be a programming mistake. I.e. it's harder to get wrong > > > if it's required. > > > > > > > I'll add a common nop routine. > > ...but wait why would it be a nop in this case. Region action commands > take a --bus= option?
Ah yeah, and so do namespace and dimm actions right? Also, should we then error out in the util function in case a NULL is encountered? Should be better than just dereferencing it.. _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm
