]> sourceware.org Git - lvm2.git/commit
mirror: fix leg splitting
authorZdenek Kabelac <zkabelac@redhat.com>
Thu, 31 Oct 2019 10:45:28 +0000 (11:45 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Thu, 31 Oct 2019 14:31:30 +0000 (15:31 +0100)
commit80b2de9e6a947b17d1cd2eda70ed0f9d73624534
tree913064a97c6bd4506da721db494e1a05c93c91da
parent8b3cf53e24277177f2c04a5d666f86afdab271c6
mirror: fix leg splitting

Enhance lv_info with lv_info_with_name_check.
This 'variant' not only check existance if UUID in DM table
but also compares its  DM name  whether it's matching expected LV name.
Otherwise activation may 'skip' activation with rename in case the
DM UUID already exists, just device is different name.

This change make fairly easier manipulation with i.e. detached mirror
leg which ATM is using same UUID - just the LV name have been changed.

Used code was not able to run 'activation' (and do a rename) and just
skipped the call. So the code used to do a workaround and 'tried'
to deactivate such LV firts - this however work only in non-clvmd case,
as cluster was not having the lock for deactivated LV.

With this extended lv_info code will run 'activation' and will
synchronize the name to match expected LV name.

Patch extends _lv_info() with new paramter 'with_name_check',
which is later translated into 'name_check' argument for
_info_run() which in case of name mismatch evaluates the
check as if device does not exists.

Such call is only used in one place _lv_activate() which then
let activation run.  All other invocation of _info() calls
are left intact.

TODO: fix mirror table manipulation (and raid)....
lib/activate/activate.c
lib/activate/activate.h
lib/activate/dev_manager.c
lib/activate/dev_manager.h
This page took 0.036839 seconds and 5 git commands to generate.