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

Commit 2580a580 authored by Kurt Hackel's avatar Kurt Hackel Committed by Mark Fasheh
Browse files

ocfs2: recheck lockres master before sending an unlock request.



Recovery may have happened and it may now be mastered locally.

Signed-off-by: default avatarKurt Hackel <kurt.hackel@oracle.com>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent 8d79d088
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -318,6 +318,16 @@ static enum dlm_status dlm_send_remote_unlock_request(struct dlm_ctxt *dlm,


	mlog_entry("%.*s\n", res->lockname.len, res->lockname.name);
	mlog_entry("%.*s\n", res->lockname.len, res->lockname.name);
			
			
	if (owner == dlm->node_num) {
		/* ended up trying to contact ourself.  this means
		 * that the lockres had been remote but became local
		 * via a migration.  just retry it, now as local */
		mlog(0, "%s:%.*s: this node became the master due to a "
		     "migration, re-evaluate now\n", dlm->name,
		     res->lockname.len, res->lockname.name);
		return DLM_FORWARD;
	}

	memset(&unlock, 0, sizeof(unlock));
	memset(&unlock, 0, sizeof(unlock));
	unlock.node_idx = dlm->node_num;
	unlock.node_idx = dlm->node_num;
	unlock.flags = cpu_to_be32(flags);
	unlock.flags = cpu_to_be32(flags);