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

dlm: fix dlm_recover_members refcount on error

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 <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>

authored by

Alexander Aring and committed by
David Teigland
200b977e f74dacb4

+1 -1
+1 -1
fs/dlm/recoverd.c
··· 151 151 error = dlm_recover_members(ls, rv, &neg); 152 152 if (error) { 153 153 log_rinfo(ls, "dlm_recover_members error %d", error); 154 - goto fail; 154 + goto fail_root_list; 155 155 } 156 156 157 157 dlm_recover_dir_nodeid(ls, &root_list);