From 07d481957c16832c782bb7d0c1fc436bcb148ea6 Mon Sep 17 00:00:00 2001 From: Wang Di Date: Wed, 9 Jul 2014 07:50:13 -0700 Subject: [PATCH] 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 --- lustre/fld/fld_request.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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; -- 1.8.3.1