From: Wang Di Date: Wed, 9 Jul 2014 14:50:13 +0000 (-0700) Subject: LU-5312 fld: retry fld rpc until the import is closed X-Git-Tag: 2.6.51~108 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=07d481957c16832c782bb7d0c1fc436bcb148ea6;p=fs%2Flustre-release.git LU-5312 fld: retry fld rpc until the import is closed Since LWP is not replayable, it should retry RPC until the import is closed, otherwise it would cause unnecessary failure of the application. Change-Id: I66d52fefe472ff2b139aa74f837e32a1403c3b2a Signed-off-by: Wang Di Reviewed-on: http://review.whamcloud.com/11039 Tested-by: Jenkins Reviewed-by: Andreas Dilger Reviewed-by: Fan Yong Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/fld/fld_request.c b/lustre/fld/fld_request.c index 4b402cb..1ca31c0 100644 --- a/lustre/fld/fld_request.c +++ b/lustre/fld/fld_request.c @@ -436,12 +436,10 @@ again: rc = ptlrpc_queue_wait(req); obd_put_request_slot(&exp->exp_obd->u.cli); if (rc != 0) { - if (rc == -EWOULDBLOCK || rc == -ESHUTDOWN) { - /* For no_delay req(see above), EWOULDBLOCK and - * ESHUTDOWN means the connection is being evicted, - * but this seq lookup should not return error, - * since it would cause unecessary failure of the - * application, instead it should retry here */ + if (imp->imp_state != LUSTRE_IMP_CLOSED) { + /* Since LWP is not replayable, so it will keep + * trying unless umount happens, otherwise it would + * cause unecessary failure of the application. */ ptlrpc_req_finished(req); rc = 0; goto again;