Re: [PATCH 3/8] bdi: add a ->dev_name field to struct backing_dev_info

From: Christoph Hellwig
Date: Fri Apr 17 2020 - 09:01:47 EST


On Fri, Apr 17, 2020 at 10:59:09AM +0200, Jan Kara wrote:
> > - dev = device_create_vargs(bdi_class, NULL, MKDEV(0, 0), bdi, fmt, args);
> > + vsnprintf(bdi->dev_name, sizeof(bdi->dev_name), fmt, args);
> > + dev = device_create(bdi_class, NULL, MKDEV(0, 0), bdi, bdi->dev_name);
> > if (IS_ERR(dev))
> > return PTR_ERR(dev);
> >
>
> This can have a sideeffect not only bdi->dev_name will be truncated to 64
> chars (which generally doesn't matter) but possibly also kobject name will
> be truncated in the same way. Which may have user visible effects. E.g.
> for fs/vboxsf 64 chars need not be enough. So shouldn't we rather do it the
> other way around - i.e., let device_create_vargs() create the device name
> and then copy to bdi->dev_name whatever fits?

I think having them mismatch is worse, as the kobject name is what
people look for. Hans, do you know what fc->source typicall contains
and if there is much of a problem if it gets truncated/ Can we switch
to something else that is guranteed to be 64 charaters or less for the
bdi name?