Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 558c70c5 authored by Kurt Hackel's avatar Kurt Hackel Committed by Mark Fasheh
Browse files

[PATCH] ocfs2: manually grant remote recovery lock



* fix a hang in recovery that occurred in dlmlock_remote.  the $RECOVERY
  lock was never moved to the granted queue even after getting DLM_NORMAL
  back from the master node.

Signed-off-by: default avatarKurt Hackel <kurt.hackel@oracle.com>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent 44465a7d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -220,6 +220,17 @@ static enum dlm_status dlmlock_remote(struct dlm_ctxt *dlm,
			dlm_error(status);
		dlm_revert_pending_lock(res, lock);
		dlm_lock_put(lock);
	} else if (dlm_is_recovery_lock(res->lockname.name, 
					res->lockname.len)) {
		/* special case for the $RECOVERY lock.
		 * there will never be an AST delivered to put
		 * this lock on the proper secondary queue
		 * (granted), so do it manually. */
		mlog(0, "%s: $RECOVERY lock for this node (%u) is "
		     "mastered by %u; got lock, manually granting (no ast)\n",
		     dlm->name, dlm->node_num, res->owner);
		list_del_init(&lock->list);
		list_add_tail(&lock->list, &res->granted);
	}
	spin_unlock(&res->spinlock);