]> Git Repo - linux.git/commitdiff
dlm: fix dlm_recover_members refcount on error
authorAlexander Aring <[email protected]>
Mon, 18 Nov 2024 16:01:49 +0000 (11:01 -0500)
committerDavid Teigland <[email protected]>
Mon, 18 Nov 2024 16:05:57 +0000 (10:05 -0600)
If dlm_recover_members() fails we don't drop the references of the
previous created root_list that holds and keep all rsbs alive during the
recovery. It might be not an unlikely event because ping_members() could
run into an -EINTR if another recovery progress was triggered again.

Fixes: 3a747f4a2ee8 ("dlm: move rsb root_list to ls_recover() stack")
Signed-off-by: Alexander Aring <[email protected]>
Signed-off-by: David Teigland <[email protected]>
fs/dlm/recoverd.c

index 34f4f9f49a6ce53acc1f71369dd547c48107578d..12272a8f6d75f33d6b9372e84dca88831acfe05a 100644 (file)
@@ -151,7 +151,7 @@ static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv)
        error = dlm_recover_members(ls, rv, &neg);
        if (error) {
                log_rinfo(ls, "dlm_recover_members error %d", error);
-               goto fail;
+               goto fail_root_list;
        }
 
        dlm_recover_dir_nodeid(ls, &root_list);
This page took 0.052988 seconds and 4 git commands to generate.