From 5e11d744becb81e79930b23ea0f998c7e7f07c08 Mon Sep 17 00:00:00 2001 From: Andriy Skulysh Date: Wed, 9 Oct 2019 22:53:14 +0300 Subject: [PATCH] LU-13165 mdt: MSG_RESENT can be improperly cleared. req_can_reconstruct() can return -EPROTO, it means that original request was processed and reply was received. Change-Id: I06ba9aa24821f414777d38e9ca606652b172e92c Fixes: 23773b32bf ("LU-11444 ptlrpc: resend may corrupt the data") Cray-bug-id: LUS-7972 Signed-off-by: Andriy Skulysh Reviewed-by: Vitaly Fertman Reviewed-by: Alexander Boyko Reviewed-on: https://review.whamcloud.com/37296 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Alexandr Boyko Reviewed-by: Oleg Drokin --- lustre/mdt/mdt_handler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 369ea1e..3b6918b 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -3943,7 +3943,7 @@ void mdt_intent_fixup_resent(struct mdt_thread_info *info, * If the xid matches, then we know this is a resent request, and allow * it. (It's probably an OPEN, for which we don't send a lock. */ - if (req_can_reconstruct(req, NULL) == 1) + if (req_can_reconstruct(req, NULL) != 0) return; /* -- 1.8.3.1