aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dlm/lockspace.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dlm/lockspace.c')
-rw-r--r--fs/dlm/lockspace.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index 414a108df934..339a204d7479 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -237,6 +237,7 @@ static int dlm_scand(void *data)
237 list_for_each_entry(ls, &lslist, ls_list) { 237 list_for_each_entry(ls, &lslist, ls_list) {
238 if (dlm_lock_recovery_try(ls)) { 238 if (dlm_lock_recovery_try(ls)) {
239 dlm_scan_rsbs(ls); 239 dlm_scan_rsbs(ls);
240 dlm_scan_timeout(ls);
240 dlm_unlock_recovery(ls); 241 dlm_unlock_recovery(ls);
241 } 242 }
242 } 243 }
@@ -421,11 +422,16 @@ static int new_lockspace(char *name, int namelen, void **lockspace,
421 goto out; 422 goto out;
422 memcpy(ls->ls_name, name, namelen); 423 memcpy(ls->ls_name, name, namelen);
423 ls->ls_namelen = namelen; 424 ls->ls_namelen = namelen;
424 ls->ls_exflags = flags;
425 ls->ls_lvblen = lvblen; 425 ls->ls_lvblen = lvblen;
426 ls->ls_count = 0; 426 ls->ls_count = 0;
427 ls->ls_flags = 0; 427 ls->ls_flags = 0;
428 428
429 /* ls_exflags are forced to match among nodes, and we don't
430 need to require all nodes to have TIMEWARN active */
431 if (flags & DLM_LSFL_TIMEWARN)
432 set_bit(LSFL_TIMEWARN, &ls->ls_flags);
433 ls->ls_exflags = (flags & ~DLM_LSFL_TIMEWARN);
434
429 size = dlm_config.ci_rsbtbl_size; 435 size = dlm_config.ci_rsbtbl_size;
430 ls->ls_rsbtbl_size = size; 436 ls->ls_rsbtbl_size = size;
431 437
@@ -465,6 +471,8 @@ static int new_lockspace(char *name, int namelen, void **lockspace,
465 mutex_init(&ls->ls_waiters_mutex); 471 mutex_init(&ls->ls_waiters_mutex);
466 INIT_LIST_HEAD(&ls->ls_orphans); 472 INIT_LIST_HEAD(&ls->ls_orphans);
467 mutex_init(&ls->ls_orphans_mutex); 473 mutex_init(&ls->ls_orphans_mutex);
474 INIT_LIST_HEAD(&ls->ls_timeout);
475 mutex_init(&ls->ls_timeout_mutex);
468 476
469 INIT_LIST_HEAD(&ls->ls_nodes); 477 INIT_LIST_HEAD(&ls->ls_nodes);
470 INIT_LIST_HEAD(&ls->ls_nodes_gone); 478 INIT_LIST_HEAD(&ls->ls_nodes_gone);