[DLM] show nodeid for recovery message
authorDavid Teigland <teigland@redhat.com>
Tue, 8 Aug 2006 22:08:42 +0000 (17:08 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 9 Aug 2006 13:46:38 +0000 (09:46 -0400)
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>
fs/dlm/dlm_internal.h
fs/dlm/lockspace.c
fs/dlm/member.c
fs/dlm/rcom.c

index 7c3c2d2..ec7e401 100644 (file)
@@ -467,6 +467,7 @@ struct dlm_ls {
        struct list_head        ls_requestqueue;/* queue remote requests */
        struct mutex            ls_requestqueue_mutex;
        char                    *ls_recover_buf;
+       int                     ls_recover_nodeid; /* for debugging */
        struct list_head        ls_recover_list;
        spinlock_t              ls_recover_list_lock;
        int                     ls_recover_list_count;
index 31ed0fe..7adaad5 100644 (file)
@@ -81,6 +81,11 @@ static ssize_t dlm_recover_status_show(struct dlm_ls *ls, char *buf)
        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 attribute attr;
        ssize_t (*show)(struct dlm_ls *, char *);
@@ -108,11 +113,17 @@ static struct dlm_attr dlm_attr_recover_status = {
        .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[] = {
        &dlm_attr_control.attr,
        &dlm_attr_event.attr,
        &dlm_attr_id.attr,
        &dlm_attr_recover_status.attr,
+       &dlm_attr_recover_nodeid.attr,
        NULL,
 };
 
index ebb33c3..a3f7de7 100644 (file)
@@ -176,7 +176,8 @@ static int ping_members(struct dlm_ls *ls)
                        break;
        }
        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;
 }
 
index 55fbe31..5573d85 100644 (file)
@@ -97,6 +97,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid)
        int error = 0;
 
        memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
+       ls->ls_recover_nodeid = nodeid;
 
        if (nodeid == dlm_our_nodeid()) {
                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);
 
        memset(ls->ls_recover_buf, 0, dlm_config.buffer_size);
+       ls->ls_recover_nodeid = nodeid;
 
        if (nodeid == dlm_our_nodeid()) {
                dlm_copy_master_names(ls, last_name, last_len,