|
@@ -3148,6 +3148,7 @@ static void recover_convert_waiter(struct dlm_ls *ls, struct dlm_lkb *lkb)
|
|
|
if (middle_conversion(lkb)) {
|
|
|
hold_lkb(lkb);
|
|
|
ls->ls_stub_ms.m_result = -EINPROGRESS;
|
|
|
+ ls->ls_stub_ms.m_flags = lkb->lkb_flags;
|
|
|
_remove_from_waiters(lkb);
|
|
|
_receive_convert_reply(lkb, &ls->ls_stub_ms);
|
|
|
|
|
@@ -3221,6 +3222,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
|
|
|
case DLM_MSG_UNLOCK:
|
|
|
hold_lkb(lkb);
|
|
|
ls->ls_stub_ms.m_result = -DLM_EUNLOCK;
|
|
|
+ ls->ls_stub_ms.m_flags = lkb->lkb_flags;
|
|
|
_remove_from_waiters(lkb);
|
|
|
_receive_unlock_reply(lkb, &ls->ls_stub_ms);
|
|
|
dlm_put_lkb(lkb);
|
|
@@ -3229,6 +3231,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
|
|
|
case DLM_MSG_CANCEL:
|
|
|
hold_lkb(lkb);
|
|
|
ls->ls_stub_ms.m_result = -DLM_ECANCEL;
|
|
|
+ ls->ls_stub_ms.m_flags = lkb->lkb_flags;
|
|
|
_remove_from_waiters(lkb);
|
|
|
_receive_cancel_reply(lkb, &ls->ls_stub_ms);
|
|
|
dlm_put_lkb(lkb);
|