[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>

authored by Kurt Hackel and committed by Mark Fasheh 558c70c5 44465a7d

+11
+11
fs/ocfs2/dlm/dlmlock.c
··· 220 220 dlm_error(status); 221 221 dlm_revert_pending_lock(res, lock); 222 222 dlm_lock_put(lock); 223 + } else if (dlm_is_recovery_lock(res->lockname.name, 224 + res->lockname.len)) { 225 + /* special case for the $RECOVERY lock. 226 + * there will never be an AST delivered to put 227 + * this lock on the proper secondary queue 228 + * (granted), so do it manually. */ 229 + mlog(0, "%s: $RECOVERY lock for this node (%u) is " 230 + "mastered by %u; got lock, manually granting (no ast)\n", 231 + dlm->name, dlm->node_num, res->owner); 232 + list_del_init(&lock->list); 233 + list_add_tail(&lock->list, &res->granted); 223 234 } 224 235 spin_unlock(&res->spinlock); 225 236