Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dlm: move recovery barrier calls

Put all the calls to recovery barriers in the same function
to clarify where they each happen. Should not change any behavior.
Also modify some recovery debug lines to make them consistent.

Signed-off-by: David Teigland <teigland@redhat.com>

+28 -27
-1
fs/dlm/dir.c
··· 290 290 291 291 out_status: 292 292 error = 0; 293 - dlm_set_recover_status(ls, DLM_RS_DIR); 294 293 log_debug(ls, "dlm_recover_directory %d entries", count); 295 294 out_free: 296 295 kfree(last_name);
+1 -6
fs/dlm/member.c
··· 251 251 ls->ls_low_nodeid = low; 252 252 253 253 make_member_array(ls); 254 - dlm_set_recover_status(ls, DLM_RS_NODES); 255 254 *neg_out = neg; 256 255 257 256 error = ping_members(ls); ··· 260 261 ls->ls_members_result = error; 261 262 complete(&ls->ls_members_done); 262 263 } 263 - if (error) 264 - goto out; 265 264 266 - error = dlm_recover_members_wait(ls); 267 - out: 268 - log_debug(ls, "total members %d error %d", ls->ls_num_nodes, error); 265 + log_debug(ls, "dlm_recover_members %d nodes", ls->ls_num_nodes); 269 266 return error; 270 267 } 271 268
-2
fs/dlm/recover.c
··· 542 542 out: 543 543 if (error) 544 544 recover_list_clear(ls); 545 - else 546 - dlm_set_recover_status(ls, DLM_RS_LOCKS); 547 545 return error; 548 546 } 549 547
+27 -18
fs/dlm/recoverd.c
··· 54 54 unsigned long start; 55 55 int error, neg = 0; 56 56 57 - log_debug(ls, "recover %llx", (unsigned long long)rv->seq); 57 + log_debug(ls, "dlm_recover %llx", (unsigned long long)rv->seq); 58 58 59 59 mutex_lock(&ls->ls_recoverd_active); 60 60 ··· 76 76 77 77 /* 78 78 * Add or remove nodes from the lockspace's ls_nodes list. 79 - * Also waits for all nodes to complete dlm_recover_members. 80 79 */ 81 80 82 81 error = dlm_recover_members(ls, rv, &neg); 83 82 if (error) { 84 - log_debug(ls, "recover_members failed %d", error); 83 + log_debug(ls, "dlm_recover_members error %d", error); 85 84 goto fail; 86 85 } 86 + 87 + dlm_set_recover_status(ls, DLM_RS_NODES); 88 + 89 + error = dlm_recover_members_wait(ls); 90 + if (error) { 91 + log_debug(ls, "dlm_recover_members_wait error %d", error); 92 + goto fail; 93 + } 94 + 87 95 start = jiffies; 88 96 89 97 /* ··· 101 93 102 94 error = dlm_recover_directory(ls); 103 95 if (error) { 104 - log_debug(ls, "recover_directory failed %d", error); 96 + log_debug(ls, "dlm_recover_directory error %d", error); 105 97 goto fail; 106 98 } 107 99 108 - /* 109 - * Wait for all nodes to complete directory rebuild. 110 - */ 100 + dlm_set_recover_status(ls, DLM_RS_DIR); 111 101 112 102 error = dlm_recover_directory_wait(ls); 113 103 if (error) { 114 - log_debug(ls, "recover_directory_wait failed %d", error); 104 + log_debug(ls, "dlm_recover_directory_wait error %d", error); 115 105 goto fail; 116 106 } 117 107 ··· 139 133 140 134 error = dlm_recover_masters(ls); 141 135 if (error) { 142 - log_debug(ls, "recover_masters failed %d", error); 136 + log_debug(ls, "dlm_recover_masters error %d", error); 143 137 goto fail; 144 138 } 145 139 ··· 149 143 150 144 error = dlm_recover_locks(ls); 151 145 if (error) { 152 - log_debug(ls, "recover_locks failed %d", error); 146 + log_debug(ls, "dlm_recover_locks error %d", error); 153 147 goto fail; 154 148 } 155 149 150 + dlm_set_recover_status(ls, DLM_RS_LOCKS); 151 + 156 152 error = dlm_recover_locks_wait(ls); 157 153 if (error) { 158 - log_debug(ls, "recover_locks_wait failed %d", error); 154 + log_debug(ls, "dlm_recover_locks_wait error %d", error); 159 155 goto fail; 160 156 } 161 157 ··· 178 170 179 171 error = dlm_recover_locks_wait(ls); 180 172 if (error) { 181 - log_debug(ls, "recover_locks_wait failed %d", error); 173 + log_debug(ls, "dlm_recover_locks_wait error %d", error); 182 174 goto fail; 183 175 } 184 176 } ··· 194 186 dlm_purge_requestqueue(ls); 195 187 196 188 dlm_set_recover_status(ls, DLM_RS_DONE); 189 + 197 190 error = dlm_recover_done_wait(ls); 198 191 if (error) { 199 - log_debug(ls, "recover_done_wait failed %d", error); 192 + log_debug(ls, "dlm_recover_done_wait error %d", error); 200 193 goto fail; 201 194 } 202 195 ··· 209 200 210 201 error = enable_locking(ls, rv->seq); 211 202 if (error) { 212 - log_debug(ls, "enable_locking failed %d", error); 203 + log_debug(ls, "enable_locking error %d", error); 213 204 goto fail; 214 205 } 215 206 216 207 error = dlm_process_requestqueue(ls); 217 208 if (error) { 218 - log_debug(ls, "process_requestqueue failed %d", error); 209 + log_debug(ls, "dlm_process_requestqueue error %d", error); 219 210 goto fail; 220 211 } 221 212 222 213 error = dlm_recover_waiters_post(ls); 223 214 if (error) { 224 - log_debug(ls, "recover_waiters_post failed %d", error); 215 + log_debug(ls, "dlm_recover_waiters_post error %d", error); 225 216 goto fail; 226 217 } 227 218 228 219 dlm_grant_after_purge(ls); 229 220 230 - log_debug(ls, "recover %llx done: %u ms", 221 + log_debug(ls, "dlm_recover %llx done: %u ms", 231 222 (unsigned long long)rv->seq, 232 223 jiffies_to_msecs(jiffies - start)); 233 224 mutex_unlock(&ls->ls_recoverd_active); ··· 236 227 237 228 fail: 238 229 dlm_release_root_list(ls); 239 - log_debug(ls, "recover %llx error %d", 230 + log_debug(ls, "dlm_recover %llx error %d", 240 231 (unsigned long long)rv->seq, error); 241 232 mutex_unlock(&ls->ls_recoverd_active); 242 233 return error;