diff options
-rw-r--r-- | fs/dlm/dlm_internal.h | 1 | ||||
-rw-r--r-- | fs/dlm/lockspace.c | 11 | ||||
-rw-r--r-- | fs/dlm/member.c | 3 | ||||
-rw-r--r-- | fs/dlm/rcom.c | 2 |
4 files changed, 16 insertions, 1 deletions
diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h index 7c3c2d27c012..ec7e401133fd 100644 --- a/fs/dlm/dlm_internal.h +++ b/fs/dlm/dlm_internal.h | |||
@@ -467,6 +467,7 @@ struct dlm_ls { | |||
467 | struct list_head ls_requestqueue;/* queue remote requests */ | 467 | struct list_head ls_requestqueue;/* queue remote requests */ |
468 | struct mutex ls_requestqueue_mutex; | 468 | struct mutex ls_requestqueue_mutex; |
469 | char *ls_recover_buf; | 469 | char *ls_recover_buf; |
470 | int ls_recover_nodeid; /* for debugging */ | ||
470 | struct list_head ls_recover_list; | 471 | struct list_head ls_recover_list; |
471 | spinlock_t ls_recover_list_lock; | 472 | spinlock_t ls_recover_list_lock; |
472 | int ls_recover_list_count; | 473 | int ls_recover_list_count; |
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c index 31ed0fe16a31..7adaad53fc38 100644 --- a/fs/dlm/lockspace.c +++ b/fs/dlm/lockspace.c | |||
@@ -81,6 +81,11 @@ static ssize_t dlm_recover_status_show(struct dlm_ls *ls, char *buf) | |||
81 | return sprintf(buf, "%x\n", status); | 81 | return sprintf(buf, "%x\n", status); |
82 | } | 82 | } |
83 | 83 | ||
84 | static ssize_t dlm_recover_nodeid_show(struct dlm_ls *ls, char *buf) | ||
85 | { | ||
86 | return sprintf(buf, "%d\n", ls->ls_recover_nodeid); | ||
87 | } | ||
88 | |||
84 | struct dlm_attr { | 89 | struct dlm_attr { |
85 | struct attribute attr; | 90 | struct attribute attr; |
86 | ssize_t (*show)(struct dlm_ls *, char *); | 91 | ssize_t (*show)(struct dlm_ls *, char *); |
@@ -108,11 +113,17 @@ static struct dlm_attr dlm_attr_recover_status = { | |||
108 | .show = dlm_recover_status_show | 113 | .show = dlm_recover_status_show |
109 | }; | 114 | }; |
110 | 115 | ||
116 | static struct dlm_attr dlm_attr_recover_nodeid = { | ||
117 | .attr = {.name = "recover_nodeid", .mode = S_IRUGO}, | ||
118 | .show = dlm_recover_nodeid_show | ||
119 | }; | ||
120 | |||
111 | static struct attribute *dlm_attrs[] = { | 121 | static struct attribute *dlm_attrs[] = { |
112 | &dlm_attr_control.attr, | 122 | &dlm_attr_control.attr, |
113 | &dlm_attr_event.attr, | 123 | &dlm_attr_event.attr, |
114 | &dlm_attr_id.attr, | 124 | &dlm_attr_id.attr, |
115 | &dlm_attr_recover_status.attr, | 125 | &dlm_attr_recover_status.attr, |
126 | &dlm_attr_recover_nodeid.attr, | ||
116 | NULL, | 127 | NULL, |
117 | }; | 128 | }; |
118 | 129 | ||
diff --git a/fs/dlm/member.c b/fs/dlm/member.c index ebb33c30f0f3..a3f7de7f3a8f 100644 --- a/fs/dlm/member.c +++ b/fs/dlm/member.c | |||
@@ -176,7 +176,8 @@ static int ping_members(struct dlm_ls *ls) | |||
176 | break; | 176 | break; |
177 | } | 177 | } |
178 | if (error) | 178 | if (error) |
179 | log_debug(ls, "ping_members aborted %d", error); | 179 | log_debug(ls, "ping_members aborted %d last nodeid %d", |
180 | error, ls->ls_recover_nodeid); | ||
180 | return error; | 181 | return error; |
181 | } | 182 | } |
182 | 183 | ||
diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c index 55fbe313340e..5573d8590e58 100644 --- a/fs/dlm/rcom.c +++ b/fs/dlm/rcom.c | |||
@@ -97,6 +97,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid) | |||
97 | int error = 0; | 97 | int error = 0; |
98 | 98 | ||
99 | memset(ls->ls_recover_buf, 0, dlm_config.buffer_size); | 99 | memset(ls->ls_recover_buf, 0, dlm_config.buffer_size); |
100 | ls->ls_recover_nodeid = nodeid; | ||
100 | 101 | ||
101 | if (nodeid == dlm_our_nodeid()) { | 102 | if (nodeid == dlm_our_nodeid()) { |
102 | rc = (struct dlm_rcom *) ls->ls_recover_buf; | 103 | 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) | |||
159 | int error = 0, len = sizeof(struct dlm_rcom); | 160 | int error = 0, len = sizeof(struct dlm_rcom); |
160 | 161 | ||
161 | memset(ls->ls_recover_buf, 0, dlm_config.buffer_size); | 162 | memset(ls->ls_recover_buf, 0, dlm_config.buffer_size); |
163 | ls->ls_recover_nodeid = nodeid; | ||
162 | 164 | ||
163 | if (nodeid == dlm_our_nodeid()) { | 165 | if (nodeid == dlm_our_nodeid()) { |
164 | dlm_copy_master_names(ls, last_name, last_len, | 166 | dlm_copy_master_names(ls, last_name, last_len, |