Re: [Lsf] [RFC] writeback and cgroup

From: Fengguang Wu
Date: Mon Apr 16 2012 - 22:19:37 EST


On Mon, Apr 16, 2012 at 11:52:07AM -0400, Vivek Goyal wrote:
> On Mon, Apr 16, 2012 at 09:07:07PM +0800, Fengguang Wu wrote:
>
> [..]
> > Vivek, I noticed these lines in cfq code
> >
> > sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor);
> >
> > Why not use bdi->dev->devt? The problem is that dev_name() will
> > return "btrfs-X" for btrfs rather than "major:minor".
>
> Isn't bdi->dev->devt 0? I see following code.
>
> add_disk()
> bdi_register_dev()
> bdi_register()
> device_create_vargs(MKDEV(0,0))
> dev->devt = devt = MKDEV(0,0);
>
> So for normal block devices, I think bdi->dev->devt will be zero, that's
> why probably we don't use it.

Yes indeed. I can confirm this with tracing. There are two main cases

- some filesystems do not have a real device for the bdi.

- add_disk() calls bdi_register_dev() with the devt, however this
information is not passed down for some reason.
device_create_vargs() will try to create a sysfs dev file if the
devt is not MKDEV(0,0).

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/