Re: [PATCH v6 08/25] rtrs: client: sysfs interface functions

Jinpu Wang
2020-01-03T14:59:21Z

On Thu, Jan 2, 2020 at 10:14 PM Bart Van Assche <bvanassche@acm.org> wrote:
>
> On 12/30/19 2:29 AM, Jack Wang wrote:
> > +static struct kobj_type ktype = {
> > + .sysfs_ops = &kobj_sysfs_ops,
> > +};
>
> Can this data structure be declared 'const'?
No, kobject_init_and_add expect sturct kobj_type *.
>
> > +static ssize_t max_reconnect_attempts_show(struct device *dev,
> > + struct device_attribute *attr,
> > + char *page)
> > +{
> > + struct rtrs_clt *clt;
> > +
> > + clt = container_of(dev, struct rtrs_clt, dev);
>
> If the above two statements would be combined into a single statement,
> does the result still fit in 80 columns? If so, please combine these two
> statements into a single statement.
ok.
>
> > +static ssize_t max_reconnect_attempts_store(struct device *dev,
> > + struct device_attribute *attr,
> > + const char *buf,
> > + size_t count)
> > +{
> > + struct rtrs_clt *clt;
> > + int value;
> > + int ret;
> > +
> > + clt = container_of(dev, struct rtrs_clt, dev);
>
> Same comment here and also for other uses of 'clt': how about combining
> the declaration and initialization of 'clt' into a single line of code?
ok.
>
> > +static ssize_t mpath_policy_show(struct device *dev,
> > + struct device_attribute *attr,
> > + char *page)
> > +{
> > + struct rtrs_clt *clt;
> > +
> > + clt = container_of(dev, struct rtrs_clt, dev);
> > +
> > + switch (clt->mp_policy) {
> > + case MP_POLICY_RR:
> > + return sprintf(page, "round-robin (RR: %d)\n", clt->mp_policy);
> > + case MP_POLICY_MIN_INFLIGHT:
> > + return sprintf(page, "min-inflight (MI: %d)\n", clt->mp_policy);
> > + default:
> > + return sprintf(page, "Unknown (%d)\n", clt->mp_policy);
> > + }
> > +}
>
> Is the above show function compatible with the sysfs one-value-per-file
> rule?
It's a single string :)
>
> > +static struct kobj_attribute rtrs_clt_remove_path_attr =
> > + __ATTR(remove_path, 0644, rtrs_clt_remove_path_show,
> > + rtrs_clt_remove_path_store);
>
> Could __ATTR_RW() have been used here?
can be used, but I prefer to keep the rtrs_clt_ prefix for function names.
>
> > +static struct kobj_attribute rtrs_clt_src_addr_attr =
> > + __ATTR(src_addr, 0444, rtrs_clt_src_addr_show, NULL);
>
> Could __ATTR_RO() have been used here?
dito.
>
> > +static struct attribute_group rtrs_clt_sess_attr_group = {
> > + .attrs = rtrs_clt_sess_attrs,
> > +};
>
> Can this data structure be declared 'const'?
Yes.
>
> Thanks,
>
> Bart.
Thanks