1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-02 01:18:26 +03:00

Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.

This commit is contained in:
Alasdair Kergon 2011-02-02 23:39:39 +00:00
parent fccfa9e929
commit 12e36e7ea7
2 changed files with 12 additions and 7 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.83 -
===================================
Allow CLVMD_CMD_SYNC_NAMES to be propagated around the cluster if requested.
Add "dmsetup ls --tree" output to lvmdump.
Fix udev synchronization with no-locking --sysinit (2.02.80).
Updating man pages for pvcreate, pvremove, pvresize, pvscan.

View File

@ -347,13 +347,17 @@ static int _lock_for_cluster(struct cmd_context *cmd, unsigned char clvmd_cmd,
* One exception, is that P_ locks (except VG_SYNC_NAMES) /do/ get
* distributed across the cluster because they might have side-effects.
*/
if ((strncmp(name, "P_", 2) &&
(clvmd_cmd == CLVMD_CMD_LOCK_VG ||
(flags & LCK_TYPE_MASK) == LCK_EXCL ||
(flags & LCK_LOCAL) ||
!(flags & LCK_CLUSTER_VG))) ||
(clvmd_cmd == CLVMD_CMD_SYNC_NAMES && (flags & LCK_LOCAL)))
node = ".";
if (clvmd_cmd == CLVMD_CMD_SYNC_NAMES) {
if (flags & LCK_LOCAL)
node = ".";
} else if (clvmd_cmd != CLVMD_CMD_VG_BACKUP) {
if (strncmp(name, "P_", 2) &&
(clvmd_cmd == CLVMD_CMD_LOCK_VG ||
(flags & LCK_TYPE_MASK) == LCK_EXCL ||
(flags & LCK_LOCAL) ||
!(flags & LCK_CLUSTER_VG)))
node = ".";
}
status = _cluster_request(clvmd_cmd, node, args, len,
&response, &num_responses);