mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 18:23:53 +08:00
[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: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
parent
44465a7daf
commit
558c70c59b
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user