mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
pvscan: synchronize with udev if pvscan --cache is used.
We need to call sync_local_dev_names directly as pvscan uses VG_GLOBAL lock and this one *does not* cause the synchronization (sync_dev_names) to be called on unlock (VG_GLOBAL is not a real VG): define unlock_vg(cmd, vol) do { \ if (is_real_vg(vol)) \ sync_dev_names(cmd); \ (void) lock_vol(cmd, vol, LCK_VG_UNLOCK); \ } while (0) Without this fix, we end up without udev synchronization for the pvscan --cache (mainly for -aay that causes the VGs/LVs to be autoactivated) and also udev synchronization cookies are then left in the system since they're not managed properly (code before sets up udev sync cookies, but we have to call dm_udev_wait at least once after that to do the wait and cleanup).
This commit is contained in:
parent
756bcabbfe
commit
ad85b0c526
@ -1,5 +1,6 @@
|
||||
Version 2.02.99 -
|
||||
===================================
|
||||
Synchronize with udev in pvscan --cache and fix dangling udev_sync cookies.
|
||||
Fix autoactivation to not autoactivate VG/LV on each change of the PVs used.
|
||||
Limit RAID device replacement to repair only if LV is not in-sync.
|
||||
Disallow RAID device replacement or repair on inactive LVs.
|
||||
|
@ -241,6 +241,7 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
|
||||
}
|
||||
|
||||
out:
|
||||
sync_local_dev_names(cmd);
|
||||
unlock_vg(cmd, VG_GLOBAL);
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user