Re: [PATCH] loop: add some basic read-only sysfs attributes

From: Karel Zak
Date: Thu Jul 29 2010 - 15:56:27 EST


On Thu, Jul 29, 2010 at 06:07:31PM +0200, Kay Sievers wrote:
> On Thu, Jul 29, 2010 at 16:58, Karel Zak <kzak@xxxxxxxxxx> wrote:
> > On Thu, Jul 29, 2010 at 04:22:50PM +0200, Kay Sievers wrote:
> >> On Thu, Jul 29, 2010 at 16:06, Milan Broz <mbroz@xxxxxxxxxx> wrote:
> >> > On 07/29/2010 03:47 PM, Kay Sievers wrote:
> >> >> On Thu, Jul 29, 2010 at 15:33, Milan Broz <mbroz@xxxxxxxxxx> wrote:
> >> >>> Create /sys/block/loopX/loop directory and provide these attributes:
> >> >>> Â- backing_file
> >> >>> Â- autoclear
> >> >>> Â- offset
> >> >>> Â- sizelimit
> >> >>>
> >> >>> To be used in util-linux-ng (and possibly elsewhere like udev rules)
> >> >>> where code need to get loop attributes from kernel (and not store
> >> >>> duplicate info in userspace).
> >> >>
> >> >> Isn't it that the loop attributes are created _after_ the loopdev is
> >> >> registered? That would make it hard to use these attributes from udev,
> >> >> as the event is already running while they are created.
> >> >
> >> > First 8 loop devices are registered always (without backing file),
> >> > so you have wait for change event initiated from fd set ioctl anyway...
> >> > (backing file attribute is empty in that case)
> >>
> >> Ah, so we are sure, we always get a 'change' event, and before that,
> >> none of these values are ever useful to read? I mean, there will not
> >> be attributes that are interesting during an 'add' event?
> >
> > I think the patch does not change the current behavior. It exports
> > details about loopdevs to userspace by /sys. This is the primary goal
> > of the patch.
>
> Sure it does. Sysfs attributes need to be created _before_ uevents are
> sent out. The current behavior is that all blockdev attributes are
> safely created before the event is sent. These loop attributes are
> created _after_ the event is sent.
>
> The question is if we can rely on the fact, that 'add' events never
> want to look at any of these attributes, and all can be deferred to

I think we can rely on this fact, 'add' does not mean that the device
is ready. BTW, why there is /sys/block/loopN at all if the device
is not associated with any backing file?

Note that /sys/block/loopN/ro is there for years and depends on
backing file as well (so it's useless after "add").

> later 'change' events. If we can't be fully certain about this, this
> stuff must be changed to happen before the event for the blockdev is
> sent out.

The primary goal is to use the attributes in mount(8) and losetup(8). I
have doubts that we will use it udev rules.

Karel

--
Karel Zak <kzak@xxxxxxxxxx>
http://karelzak.blogspot.com
--
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/