Re: Udev integration for device-mapper and its subsystems.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 29, 2009 at 04:45, Alasdair G Kergon <agk@xxxxxxxxxx> wrote:
> On Wed, Apr 29, 2009 at 03:16:23AM +0200, Kay Sievers wrote:
>> including all the userspace rename processing, means "move" uevents.
>
> So the concept for this already exists as "move".  Good.

Please stop dreaming.

>> Also DM allows pretty stupid free-text device names, and names
>
> We took the view there was no need for any restrictions beyond
> '/' in the kernel and it was a matter for userspace to choose
> the namespace.

And these days are over. /dev is not the thing anymore where everybody
can mess around.

> LVM on the other hand, does limit the alphabet pretty severely.
>
> The workaround here would just be to map any characters outside
> the range udev permits into something else.

Sounds good.

>> > E.g. Anything in userspace that opens /dev/something has to check that
>> > what it actually opened still has the same device number, if it cares
>> > about avoiding races.
>> No, we don't go and change device node names for the same device
>> number. You could do that with updated symlinks but not with the
>> primary nodes.
>
> I'm merely pointing out that we don't pass direct references to objects
> between userspace and kernel, but references stored in a filesystem, and
> between passing a /dev/something reference into the kernel and the
> kernel resolving it into its device number and the corresponding object,
> the /dev filesystem could have changed so that it now points to a
> different block device: and we make it the responsibility of userspace
> code to check that this race did not occur.

Please!

>> > 2) Change dm to insert dm-<name> into this field instead of dm-X
>> That will only work reliably if you can not change the name on the
>> fly. Otherwise it will get complicated to keep track of the devices.
>> Possible, but a real mess to get right.
>
> I think renaming is an important facility for users and we should delve
> further into the implications of handling that.
>
>> device names. If you allow that, we will need to limit it to plain
>> [a-zAZ-:.].
>
> Plus numbers I presume?

Sure.

> LVM accepts [a-zA-Z0-9+_.-]
> What about + and _ ?  Would they also need to be escaped?

"#+-.:=@_" and validated utf8 sequences are not escaped.

>> > And eventually perhaps:
>> > 7) Phase out /dev/mapper (in a suitably-compatible way as usual so we don't
>> >   break anything)
>> Just keep it, what's wrong with it?
>
> If we had /dev/map-vg1-lvol1 directly it would be pointless duplication.

It's your call, I just try to ask you to fix the stuff first and
_ship_ it, before it break it even further as it already is. Thanks!

> Remember, when dm was written in the days before udev we had only
> /dev/mapper which we managed directly ourselves (or through devfs).
> I only became aware of /dev/dm-X when I started getting bug reports from
> users inadvertently using it for things they shouldn't.

Sure, we are talking to you guys since years. What else should we do?
Now you wake up after 5 years and think you want to change everything
we do today? I'm confused.

> The root of all these problems has been dm and udev each having
> a different emphasis on their device transactions.
> (LVM/dm was designed around independent atomic transactions, which is
> what Peter has only now managed to retrofit into the udev framework.)

>> and proper hooks to plug into the processing. The last thing we need
>> here is some new special cases for DM, which do not fit into what all
>> others are doing.
>
> dm is already different because the whole philosophy is built around
> facilitating arbitrary device reconfigurations.  The fewer spurious
> things like /dev/dm-X we offer to users and developers to hang
> themselves with, the better.
> This is why I get so cross when I receive bug reports of systems
> not booting because some tool didn't understand that and hard-coded
> a dynamic minor number into their initrd or fstab, which /dev/dm-X
> has been encouraging them to do.

And again: BLOCK DEVICES HAVE THE KERNEL NAME AS THE DEVICE NODE NAME.

> Renaming without rebooting, unfortunately, is something our users do
> seem to want to be able to do and we need to find ways of making
> it easier for them.  In LVM terms, it's clustered LVM that makes
> this particularly tricky for us, and my latest proposal is to
> store both the old name and the new name in the LVM metadata and
> keep checking for both names with the tools presenting the new
> name until such time as it's safe to make the change (e.g. after
> the next reboot if it's a root filesystem) and forget about the old name
> completely.  (Currently LVM only supports renaming in-use LVs within
> VGs, not renaming VGs while they contain in-use LVs.)

Sure rename them. But if you want the device node renamed, rename the
kernel devices too.

Thanks,
Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux