[DLM] show nodeid for recovery message
To aid debugging, it's useful to be able to see what nodeid the dlm is waiting on for a message reply. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
committed by
Steven Whitehouse
parent
06442440bc
commit
faa0f26772
@@ -467,6 +467,7 @@ struct dlm_ls {
|
|||||||
struct list_head ls_requestqueue;/* queue remote requests */
|
struct list_head ls_requestqueue;/* queue remote requests */
|
||||||
struct mutex ls_requestqueue_mutex;
|
struct mutex ls_requestqueue_mutex;
|
||||||
char *ls_recover_buf;
|
char *ls_recover_buf;
|
||||||
|
int ls_recover_nodeid; /* for debugging */
|
||||||
struct list_head ls_recover_list;
|
struct list_head ls_recover_list;
|
||||||
spinlock_t ls_recover_list_lock;
|
spinlock_t ls_recover_list_lock;
|
||||||
int ls_recover_list_count;
|
int ls_recover_list_count;
|
||||||
|
@@ -81,6 +81,11 @@ static ssize_t dlm_recover_status_show(struct dlm_ls *ls, char *buf)
|
|||||||
return sprintf(buf, "%x\n", status);
|
return sprintf(buf, "%x\n", status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t dlm_recover_nodeid_show(struct dlm_ls *ls, char *buf)
|
||||||
|
{
|
||||||
|
return sprintf(buf, "%d\n", ls->ls_recover_nodeid);
|
||||||
|
}
|
||||||
|
|
||||||
struct dlm_attr {
|
struct dlm_attr {
|
||||||
struct attribute attr;
|
struct attribute attr;
|
||||||
ssize_t (*show)(struct dlm_ls *, char *);
|
ssize_t (*show)(struct dlm_ls *, char *);
|
||||||
@@ -108,11 +113,17 @@ static struct dlm_attr dlm_attr_recover_status = {
|
|||||||
.show = dlm_recover_status_show
|
.show = dlm_recover_status_show
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct dlm_attr dlm_attr_recover_nodeid = {
|
||||||
|
.attr = {.name = "recover_nodeid", .mode = S_IRUGO},
|
||||||
|
.show = dlm_recover_nodeid_show
|
||||||
|
};
|
||||||
|
|
||||||
static struct attribute *dlm_attrs[] = {
|
static struct attribute *dlm_attrs[] = {
|
||||||
&dlm_attr_control.attr,
|
&dlm_attr_control.attr,
|
||||||
&dlm_attr_event.attr,
|
&dlm_attr_event.attr,
|
||||||
&dlm_attr_id.attr,
|
&dlm_attr_id.attr,
|
||||||
&dlm_attr_recover_status.attr,
|
&dlm_attr_recover_status.attr,
|
||||||
|
&dlm_attr_recover_nodeid.attr,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -176,7 +176,8 @@ static int ping_members(struct dlm_ls *ls)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (error)
|
if (error)
|
||||||
log_debug(ls, "ping_members aborted %d", error);
|
log_debug(ls, "ping_members aborted %d last nodeid %d",
|
||||||
|
error, ls->ls_recover_nodeid);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -97,6 +97,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid)
|
|||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
|
memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
|
||||||
|
ls->ls_recover_nodeid = nodeid;
|
||||||
|
|
||||||
if (nodeid == dlm_our_nodeid()) {
|
if (nodeid == dlm_our_nodeid()) {
|
||||||
rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
||||||
@@ -159,6 +160,7 @@ int dlm_rcom_names(struct dlm_ls *ls, int nodeid, char *last_name, int last_len)
|
|||||||
int error = 0, len = sizeof(struct dlm_rcom);
|
int error = 0, len = sizeof(struct dlm_rcom);
|
||||||
|
|
||||||
memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
|
memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
|
||||||
|
ls->ls_recover_nodeid = nodeid;
|
||||||
|
|
||||||
if (nodeid == dlm_our_nodeid()) {
|
if (nodeid == dlm_our_nodeid()) {
|
||||||
dlm_copy_master_names(ls, last_name, last_len,
|
dlm_copy_master_names(ls, last_name, last_len,
|
||||||
|
Reference in New Issue
Block a user