When the target of a bulk Get/Put drops the message it sends
ENODATA back to the initiator via immediate data. This status needs to
be accounted for while the transaction is in the TN_STATE_WAIT_COMP
state, otherwise it can be lost if the TN_EVENT_TAG_RX_OK event
arrives before the TN_EVENT_TX_OK event.
HPE-bug-id: LUS-11971
Test-Parameters: trivial
Signed-off-by: Chris Horn <chris.horn@hpe.com>
Change-Id: I52d6ea52746cbc14a86478fcccb32b25badd3b0a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53027
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Ron Gredvig <ron.gredvig@hpe.com>
Reviewed-by: Ian Ziemba <ian.ziemba@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
break;
case TN_EVENT_TAG_RX_OK:
+ if (status)
+ kfilnd_tn_status_update(tn, status, LNET_MSG_STATUS_OK);
+
kfilnd_tn_state_change(tn, TN_STATE_WAIT_SEND_COMP);
if (unlikely(tn->msg_type == KFILND_MSG_BULK_PUT_REQ) &&
CFS_FAIL_CHECK(CFS_KFI_FAIL_WAIT_SEND_COMP2)) {