dlm: don't use idr_remove_all()
idr_destroy() can destroy idr by itself and idr_remove_all() is being deprecated. The conversion isn't completely trivial for recover_idr_clear() as it's the only place in kernel which makes legitimate use of idr_remove_all() w/o idr_destroy(). Replace it with idr_remove() call inside idr_for_each_entry() loop. It goes on top so that it matches the operation order in recover_idr_del(). Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Christine Caulfield <ccaulfie@redhat.com> Cc: David Teigland <teigland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
cda95406c8
Коммит
a67a380e6f
|
@ -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);
|
||||
|
||||
/*
|
||||
|
|
|
@ -359,13 +359,13 @@ static void recover_idr_clear(struct dlm_ls *ls)
|
|||
spin_lock(&ls->ls_recover_idr_lock);
|
||||
|
||||
idr_for_each_entry(&ls->ls_recover_idr, r, id) {
|
||||
idr_remove(&ls->ls_recover_idr, id);
|
||||
r->res_id = 0;
|
||||
r->res_recover_locks_count = 0;
|
||||
ls->ls_recover_list_count--;
|
||||
|
||||
dlm_put_rsb(r);
|
||||
}
|
||||
idr_remove_all(&ls->ls_recover_idr);
|
||||
|
||||
if (ls->ls_recover_list_count != 0) {
|
||||
log_error(ls, "warning: recover_list_count %d",
|
||||
|
|
Загрузка…
Ссылка в новой задаче