diff options
author | Christian Hesse <mail@eworm.de> | 2015-06-19 11:12:25 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2015-06-19 11:12:25 +0200 |
commit | 5e154ddc24376a949f0a5d8c0f6980e550b5e69f (patch) | |
tree | b8adc8a9b8fa167ce86512231204a74f7f023c65 /udev-block-notify.c | |
parent | f3e1004714beea34e77125cbee5c77bfaa377a32 (diff) | |
download | udev-block-notify-5e154ddc24376a949f0a5d8c0f6980e550b5e69f.tar.gz udev-block-notify-5e154ddc24376a949f0a5d8c0f6980e550b5e69f.tar.zst |
try to get a better choice on DM devices
Diffstat (limited to 'udev-block-notify.c')
-rw-r--r-- | udev-block-notify.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/udev-block-notify.c b/udev-block-notify.c index 7738db9..30bc597 100644 --- a/udev-block-notify.c +++ b/udev-block-notify.c @@ -129,11 +129,21 @@ int main (int argc, char ** argv) { /* ignore temporary device mapper devices * is there a better way to do this? */ - if (strncmp(device, "dm", 2) == 0 && - udev_device_get_property_value(dev, "DM_NAME") == NULL) { - if (verbose > 0) - printf("%s: Skipping temporary dm device %s\n", argv[0], device); - continue; + if (strncmp(device, "dm", 2) == 0) { + const char * property; + + if (udev_device_get_property_value(dev, "DM_NAME") == NULL) { + if (verbose > 0) + printf("%s: Skipping temporary DM device %s\n", argv[0], device); + continue; + } + if ((property = udev_device_get_property_value(dev, "DM_LV_LAYER")) != NULL) { + if (strcmp(property, "cow") == 0 || strcmp(property, "real") == 0) { + if (verbose > 0) + printf("%s: Skipping DM %s device %s\n", argv[0], property, device); + continue; + } + } } devnum = udev_device_get_devnum(dev); |