[dm-devel] best way to detect a dm device is dm-multipath from userspace?

Zdenek Kabelac zkabelac at redhat.com
Tue Mar 25 18:30:51 UTC 2014


Dne 25.3.2014 18:20, Christoph Hellwig napsal(a):
> For a little project I'm working on I'd like to find out if a given
> device node is a dm-multipath device from C code.  dm_is_dm_major tells
> me if it's any DM node, but from there on it seems like I'd have to
> grab the table name from dmsetup table output for which I'd need a name
> for the device or similar.
>
> Is there a good shortcut or library function for this check?
>


dmsetup is just a commandline tool wrapper around  libdm.

libdm has   'libdevmapper.h'  interface.

For more complex usage look at dmsetup.c

In general you prepare  dm_task structure
(dm_task_create()) - you present needed
options and you  'dm_task_run()'  (wrapper over ioctl)

Then you read result.

If you know how to use 'dmsetup' - then you get pretty
easy conversion to libdm usage.


However from the message title - I think you just really want to check
content in udev database - which should be storing all info about device type.

All detection happens in rules - IMHO you should not try to add any new 
detection..

Zdenek




More information about the dm-devel mailing list