Re: [PATCH v2] SCSI: fcoe: convert to use BUS_ATTR_WO

From: Greg Kroah-Hartman
Date: Sat Jan 26 2019 - 05:39:18 EST


On Sat, Jan 26, 2019 at 11:26:47AM +0100, Hannes Reinecke wrote:
> On 1/22/19 3:27 PM, Greg Kroah-Hartman wrote:
> > We are trying to get rid of BUS_ATTR() and the usage of that in the fcoe
> > driver can be trivially converted to use BUS_ATTR_WO(), so use that
> > instead.
> >
> > Cc: Johannes Thumshirn <jth@xxxxxxxxxx>
> > Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxxxxxxx>
> > Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> > v2: Made simpler with wrapper functions to call the "real" show/store
> > functions, thanks to James for the idea.
> > Removed the EXPORT_SYMBOL() removal line, that belongs in a separate
> > patch
> >
> > drivers/scsi/fcoe/fcoe_sysfs.c | 15 +++++++++++++--
> > 1 file changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
> > index 5c8310bade61..c3dcbdc3aa64 100644
> > --- a/drivers/scsi/fcoe/fcoe_sysfs.c
> > +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
> > @@ -671,8 +671,19 @@ static const struct device_type fcoe_fcf_device_type = {
> > .release = fcoe_fcf_device_release,
> > };
> > -static BUS_ATTR(ctlr_create, S_IWUSR, NULL, fcoe_ctlr_create_store);
> > -static BUS_ATTR(ctlr_destroy, S_IWUSR, NULL, fcoe_ctlr_destroy_store);
> > +static ssize_t ctlr_create_store(struct bus_type *bus, const char *buf,
> > + size_t count)
> > +{
> > + return fcoe_ctlr_create_store(bus, buf, count);
> > +}
> > +static BUS_ATTR_WO(ctlr_create);
> > +
> > +static ssize_t ctlr_destroy_store(struct bus_type *bus, const char *buf,
> > + size_t count)
> > +{
> > + return fcoe_ctlr_destroy_store(bus, buf, count);
> > +}
> > +static BUS_ATTR_WO(ctlr_destroy);
> > static struct attribute *fcoe_bus_attrs[] = {
> > &bus_attr_ctlr_create.attr,
> >
> Why not renaming the functions and drop the wrapper?

I did that in v1 of this patch, but people complained I was messing up
their function namespace :)

thanks,

greg k-h