X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fdlm%2Flockspace.c;h=88556dc0458ee045659ed5a91875fb51d7ac2264;hb=6664565681a1c0c95607ae2e30070352d9a563d0;hp=2e99fb0c973776fe9f103f5f0d220d2e7aceb256;hpb=986836503e49ccf7e84b813715d344964ec93566;p=~andy%2Flinux diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c index 2e99fb0c973..88556dc0458 100644 --- a/fs/dlm/lockspace.c +++ b/fs/dlm/lockspace.c @@ -796,7 +796,6 @@ static int release_lockspace(struct dlm_ls *ls, int force) */ idr_for_each(&ls->ls_lkbidr, lkb_idr_free, ls); - idr_remove_all(&ls->ls_lkbidr); idr_destroy(&ls->ls_lkbidr); /* @@ -884,17 +883,24 @@ int dlm_release_lockspace(void *lockspace, int force) void dlm_stop_lockspaces(void) { struct dlm_ls *ls; + int count; restart: + count = 0; spin_lock(&lslist_lock); list_for_each_entry(ls, &lslist, ls_list) { - if (!test_bit(LSFL_RUNNING, &ls->ls_flags)) + if (!test_bit(LSFL_RUNNING, &ls->ls_flags)) { + count++; continue; + } spin_unlock(&lslist_lock); log_error(ls, "no userland control daemon, stopping lockspace"); dlm_ls_stop(ls); goto restart; } spin_unlock(&lslist_lock); + + if (count) + log_print("dlm user daemon left %d lockspaces", count); }