From: Andriy Skulysh Date: Wed, 9 Oct 2019 19:53:14 +0000 (+0300) Subject: LU-13165 mdt: MSG_RESENT can be improperly cleared. X-Git-Tag: 2.13.52~14 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=5e11d744becb81e79930b23ea0f998c7e7f07c08;ds=sidebyside 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 --- 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; /*