Loading fs/ocfs2/dlm/dlmrecovery.c +26 −18 Original line number Diff line number Diff line Loading @@ -1675,12 +1675,20 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, lksb->flags |= (ml->flags & (DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB)); if (ml->type == LKM_NLMODE) goto skip_lvb; if (!dlm_lvb_is_empty(mres->lvb)) { if (lksb->flags & DLM_LKSB_PUT_LVB) { /* other node was trying to update * lvb when node died. recreate the * lksb with the updated lvb. */ memcpy(lksb->lvb, mres->lvb, DLM_LVB_LEN); /* the lock resource lvb update must happen * NOW, before the spinlock is dropped. * we no longer wait for the AST to update * the lvb. */ memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); } else { /* otherwise, the node is sending its * most recent valid lvb info */ Loading @@ -1707,7 +1715,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); } } skip_lvb: /* NOTE: * wrt lock queue ordering and recovery: Loading Loading
fs/ocfs2/dlm/dlmrecovery.c +26 −18 Original line number Diff line number Diff line Loading @@ -1675,12 +1675,20 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, lksb->flags |= (ml->flags & (DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB)); if (ml->type == LKM_NLMODE) goto skip_lvb; if (!dlm_lvb_is_empty(mres->lvb)) { if (lksb->flags & DLM_LKSB_PUT_LVB) { /* other node was trying to update * lvb when node died. recreate the * lksb with the updated lvb. */ memcpy(lksb->lvb, mres->lvb, DLM_LVB_LEN); /* the lock resource lvb update must happen * NOW, before the spinlock is dropped. * we no longer wait for the AST to update * the lvb. */ memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); } else { /* otherwise, the node is sending its * most recent valid lvb info */ Loading @@ -1707,7 +1715,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); } } skip_lvb: /* NOTE: * wrt lock queue ordering and recovery: Loading