dlm: resend lookups
PATCH 2/12 dlm: resend lookups
During recovery, set the RESEND flag on locks waiting for a lookup so they'll be resent when recovery completes.
Signed-off-by David Teigland <[email protected]>
drivers/dlm/lock.c +11 -8
@@ -3212,12 +3212,20 @@ void dlm_recover_waiters_pre(struct dlm_down (&ls->ls_waiters_sem);list_for_each_entry_safe (lkb, safe, &ls->ls_waiters, lkb_wait_reply) { -if (!dlm_is_removed (ls, lkb->lkb_nodeid)) -continue ; -log_debug (ls,"pre recover waiter lkid %x type %d flags %x" , lkb->lkb_id, lkb->lkb_wait_type, lkb->lkb_flags); +/* all outstanding lookups, regardless of destination will be +resent after recovery is done */ + +if (lkb->lkb_wait_type ==DLM_MSG_LOOKUP ) { + lkb->lkb_flags |=DLM_IFL_RESEND ; +continue ; + } + +if (!dlm_is_removed (ls, lkb->lkb_nodeid)) +continue ; +switch (lkb->lkb_wait_type) {case DLM_MSG_REQUEST :
@@ -3244,11 +3252,6 @@ void dlm_recover_waiters_pre(struct dlm_put_lkb (lkb);break ; -case DLM_MSG_LOOKUP : -/* all outstanding lookups, regardless of dest. -will be resent after recovery is done */ -break ; -default :log_error (ls,"invalid lkb wait_type %d" , lkb->lkb_wait_type);
--