[lvm-devel] LVM2 ./WHATS_NEW lib/locking/cluster_locking.c ...
agk at sourceware.org
agk at sourceware.org
Fri Nov 16 21:16:22 UTC 2007
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk at sourceware.org 2007-11-16 21:16:21
Modified files:
. : WHATS_NEW
lib/locking : cluster_locking.c file_locking.c locking.c
tools : pvresize.c toollib.c
Log message:
Decode cluster locking state in log message. (untested)
Change file locking state messages from debug to very verbose.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.738&r2=1.739
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/cluster_locking.c.diff?cvsroot=lvm2&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/file_locking.c.diff?cvsroot=lvm2&r1=1.32&r2=1.33
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/locking.c.diff?cvsroot=lvm2&r1=1.42&r2=1.43
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/pvresize.c.diff?cvsroot=lvm2&r1=1.18&r2=1.19
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.c.diff?cvsroot=lvm2&r1=1.117&r2=1.118
--- LVM2/WHATS_NEW 2007/11/15 21:59:10 1.738
+++ LVM2/WHATS_NEW 2007/11/16 21:16:20 1.739
@@ -1,5 +1,7 @@
Version 2.02.29 -
==================================
+ Decode cluster locking state in log message.
+ Change file locking state messages from debug to very verbose.
Fix --addtag to drop @ prefix from name.
Stop clvmd going haywire if a pre_function fails.
Convert some vg_reads into vg_lock_and_reads.
--- LVM2/lib/locking/cluster_locking.c 2007/08/23 15:43:19 1.21
+++ LVM2/lib/locking/cluster_locking.c 2007/11/16 21:16:20 1.22
@@ -378,6 +378,8 @@
{
char lockname[PATH_MAX];
int cluster_cmd = 0;
+ const char *lock_scope;
+ const char *lock_type = "";
assert(strlen(resource) < sizeof(lockname));
assert(resource);
@@ -393,6 +395,7 @@
dm_snprintf(lockname, sizeof(lockname), "V_%s",
resource);
+ lock_scope = "VG";
cluster_cmd = CLVMD_CMD_LOCK_VG;
flags &= LCK_TYPE_MASK;
break;
@@ -400,6 +403,7 @@
case LCK_LV:
cluster_cmd = CLVMD_CMD_LOCK_LV;
strcpy(lockname, resource);
+ lock_scope = "LV";
flags &= 0xffdf; /* Mask off HOLD flag */
break;
@@ -409,9 +413,40 @@
return 0;
}
- /* Send a message to the cluster manager */
- log_very_verbose("Locking %s at 0x%x", lockname, flags);
+ switch(flags & LCK_TYPE_MASK) {
+ case LCK_UNLOCK:
+ lock_type = "UN";
+ break;
+ case LCK_NULL:
+ lock_type = "NL";
+ break;
+ case LCK_READ:
+ lock_type = "CR";
+ break;
+ case LCK_PREAD:
+ lock_type = "PR";
+ break;
+ case LCK_WRITE:
+ lock_type = "PW";
+ break;
+ case LCK_EXCL:
+ lock_type = "EX";
+ break;
+ default:
+ log_error("Unrecognised lock type: %u",
+ flags & LCK_TYPE_MASK);
+ return 0;
+ }
+
+ log_very_verbose("Locking %s %s %s %s%s%s%s (0x%x)", lock_scope, lockname,
+ lock_type,
+ flags & LCK_NONBLOCK ? "" : "B",
+ flags & LCK_HOLD ? "H" : "",
+ flags & LCK_LOCAL ? "L" : "",
+ flags & LCK_CLUSTER_VG ? "C" : "",
+ flags);
+ /* Send a message to the cluster manager */
return _lock_for_cluster(cluster_cmd, flags, lockname);
}
--- LVM2/lib/locking/file_locking.c 2007/08/23 15:02:26 1.32
+++ LVM2/lib/locking/file_locking.c 2007/11/16 21:16:20 1.33
@@ -208,8 +208,6 @@
{
char lockfile[PATH_MAX];
- assert(resource);
-
switch (flags & LCK_SCOPE_MASK) {
case LCK_VG:
if (!*resource) /* FIXME Deprecated */
@@ -238,27 +236,30 @@
case LCK_LV:
switch (flags & LCK_TYPE_MASK) {
case LCK_UNLOCK:
- log_debug("Unlocking LV %s", resource);
+ log_very_verbose("Unlocking LV %s", resource);
if (!lv_resume_if_active(cmd, resource))
return 0;
break;
case LCK_NULL:
- log_debug("Locking LV %s (NL)", resource);
+ log_very_verbose("Locking LV %s (NL)", resource);
if (!lv_deactivate(cmd, resource))
return 0;
break;
case LCK_READ:
- log_debug("Locking LV %s (R)", resource);
+ log_very_verbose("Locking LV %s (R)", resource);
if (!lv_activate_with_filter(cmd, resource, 0))
return 0;
break;
+ case LCK_PREAD:
+ log_very_verbose("Locking LV %s (PR) - ignored", resource);
+ break;
case LCK_WRITE:
- log_debug("Locking LV %s (W)", resource);
+ log_very_verbose("Locking LV %s (W)", resource);
if (!lv_suspend_if_active(cmd, resource))
return 0;
break;
case LCK_EXCL:
- log_debug("Locking LV %s (EX)", resource);
+ log_very_verbose("Locking LV %s (EX)", resource);
if (!lv_activate_with_filter(cmd, resource, 1))
return 0;
break;
--- LVM2/lib/locking/locking.c 2007/11/15 21:30:52 1.42
+++ LVM2/lib/locking/locking.c 2007/11/16 21:16:20 1.43
@@ -318,6 +318,8 @@
_block_signals(flags);
_lock_memory(flags);
+ assert(resource);
+
if (!(_locking.lock_resource(cmd, resource, flags))) {
_unlock_memory(flags);
_unblock_signals();
--- LVM2/tools/pvresize.c 2007/11/15 22:11:18 1.18
+++ LVM2/tools/pvresize.c 2007/11/16 21:16:20 1.19
@@ -23,10 +23,10 @@
unsigned total;
};
-int pv_resize_single(struct cmd_context *cmd,
- struct volume_group *vg,
- struct physical_volume *pv,
- const uint64_t new_size)
+static int _pv_resize_single(struct cmd_context *cmd,
+ struct volume_group *vg,
+ struct physical_volume *pv,
+ const uint64_t new_size)
{
struct pv_list *pvl;
int consistent = 1;
@@ -186,7 +186,7 @@
params->total++;
- if (!pv_resize_single(cmd, vg, pv, params->new_size))
+ if (!_pv_resize_single(cmd, vg, pv, params->new_size))
return ECMD_FAILED;
params->done++;
--- LVM2/tools/toollib.c 2007/11/15 21:30:52 1.117
+++ LVM2/tools/toollib.c 2007/11/16 21:16:20 1.118
@@ -428,7 +428,7 @@
int ret_max = 0;
int ret;
- if (!vg) {
+ if (!vg && !is_orphan(pv)) {
vg_name = pv_vg_name(pv);
if (!(vg = vg_lock_and_read(cmd, vg_name, NULL, LCK_VG_READ,
More information about the lvm-devel
mailing list