mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Decode cluster locking state in log message. (untested)
Change file locking state messages from debug to very verbose.
This commit is contained in:
parent
a68d8ec833
commit
3e50ea9eef
@ -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.
|
||||
|
@ -378,6 +378,8 @@ int lock_resource(struct cmd_context *cmd, const char *resource, uint32_t flags)
|
||||
{
|
||||
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 @@ int lock_resource(struct cmd_context *cmd, const char *resource, uint32_t flags)
|
||||
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 @@ int lock_resource(struct cmd_context *cmd, const char *resource, uint32_t flags)
|
||||
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 @@ int lock_resource(struct cmd_context *cmd, const char *resource, uint32_t flags)
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -208,8 +208,6 @@ static int _file_lock_resource(struct cmd_context *cmd, const char *resource,
|
||||
{
|
||||
char lockfile[PATH_MAX];
|
||||
|
||||
assert(resource);
|
||||
|
||||
switch (flags & LCK_SCOPE_MASK) {
|
||||
case LCK_VG:
|
||||
if (!*resource) /* FIXME Deprecated */
|
||||
@ -238,27 +236,30 @@ static int _file_lock_resource(struct cmd_context *cmd, const char *resource,
|
||||
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;
|
||||
|
@ -318,6 +318,8 @@ static int _lock_vol(struct cmd_context *cmd, const char *resource, uint32_t fla
|
||||
_block_signals(flags);
|
||||
_lock_memory(flags);
|
||||
|
||||
assert(resource);
|
||||
|
||||
if (!(_locking.lock_resource(cmd, resource, flags))) {
|
||||
_unlock_memory(flags);
|
||||
_unblock_signals();
|
||||
|
@ -23,10 +23,10 @@ struct pvresize_params {
|
||||
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 @@ static int _pvresize_single(struct cmd_context *cmd,
|
||||
|
||||
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++;
|
||||
|
@ -428,7 +428,7 @@ int process_each_segment_in_pv(struct cmd_context *cmd,
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user