summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2021-10-25 12:11:17 -0500
committerDavid Teigland <teigland@redhat.com>2021-10-25 12:11:17 -0500
commitb65a2c3f3a76739fb75a4a3a868cc9f143740052 (patch)
tree1c514a31fb5e73cf5a6c71a152d78e5908a0410d
parent221e75316f472fbf5eb2ad206b861ea255c099ed (diff)
downloadlvm2-b65a2c3f3a76739fb75a4a3a868cc9f143740052.tar.gz
vgimportdevices: skip lvmlockd locking
Help bootstrapping existing shared vgs into the devices file. Reading the vg in vgimportdevices would require locking to be started, but vgchange lockstart won't see the vg if it's not in the devices file. The lvmlockd locks are not protecting vg modifications so skipping them here won't be a problem.
-rw-r--r--tools/vgimportdevices.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/vgimportdevices.c b/tools/vgimportdevices.c
index 3f315f98f..2580613c4 100644
--- a/tools/vgimportdevices.c
+++ b/tools/vgimportdevices.c
@@ -173,6 +173,17 @@ int vgimportdevices(struct cmd_context *cmd, int argc, char **argv)
cmd->create_edit_devices_file = 1;
/*
+ * This helps a user bootstrap existing shared VGs into the devices
+ * file. Reading the vg to import devices requires locking, but
+ * lockstart won't find the vg before it's in the devices file.
+ * So, allow importing devices without an lvmlockd lock (in a
+ * a shared vg the vg metadata won't be updated with device ids,
+ * so the lvmlockd lock isn't protecting vg modification.)
+ */
+ cmd->lockd_gl_disable = 1;
+ cmd->lockd_vg_disable = 1;
+
+ /*
* For each VG:
* device_id_add() each PV in the VG
* update device_ids in the VG (potentially)