Commit 452d90de authored by Alexander Aring's avatar Alexander Aring Committed by David Teigland
Browse files

dlm: handle invalid lockspace member remove



Since commit de7b4869 ("dlm: add new configfs entry release_recover
for lockspace members") we are moving lockspace members into a gone list
before removing them to get additional removing attributes from
configfs. There is still a very unlikely possibility when
find_config_node() returns NULL, then for some reason the node wasn't
marked as gone but it was removed. We will just handle this case and drop
an error to observe if this case can ever happen.

Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/gfs2/aJ2Ssuh8xlsTutrA@stanley.mountain/T/#u


Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent 6f4f4ca5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -571,7 +571,13 @@ int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv, int *neg_out)

	list_for_each_entry_safe(memb, safe, &ls->ls_nodes, list) {
		node = find_config_node(rv, memb->nodeid);
		if (node && !node->new && !node->gone)
		if (!node) {
			log_error(ls, "remove member %d invalid",
				  memb->nodeid);
			return -EFAULT;
		}

		if (!node->new && !node->gone)
			continue;

		release_recover = 0;