diff --git a/WHATS_NEW b/WHATS_NEW index faf658c8f..ea4899d6e 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.51 - ================================ + Fix locking in clvmd (2.02.50). Add --noudevsync option for relevant LVM tools. Add activation/udev_sync to lvm.conf. Only change LV symlinks on ACTIVATE not PRELOAD. diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c index eb9ad6fb3..23d740c91 100644 --- a/daemons/clvmd/lvm-functions.c +++ b/daemons/clvmd/lvm-functions.c @@ -479,29 +479,29 @@ int do_lock_lv(unsigned char command, unsigned char lock_flags, char *resource) cmd->partial_activation = (lock_flags & LCK_PARTIAL_MODE) ? 1 : 0; - switch (command) { - case LCK_LV_EXCLUSIVE & LCK_MASK: + switch (command & LCK_MASK) { + case LCK_LV_EXCLUSIVE: status = do_activate_lv(resource, lock_flags, LKM_EXMODE); break; - case LCK_LV_SUSPEND & LCK_MASK: + case LCK_LV_SUSPEND: status = do_suspend_lv(resource); if (!status) suspended++; break; case LCK_UNLOCK: - case LCK_LV_RESUME & LCK_MASK: /* if active */ + case LCK_LV_RESUME: /* if active */ status = do_resume_lv(resource); if (!status) suspended--; break; - case LCK_LV_ACTIVATE & LCK_MASK: + case LCK_LV_ACTIVATE: status = do_activate_lv(resource, lock_flags, LKM_CRMODE); break; - case LCK_LV_DEACTIVATE & LCK_MASK: + case LCK_LV_DEACTIVATE: status = do_deactivate_lv(resource, lock_flags); break;