From 2bea4a7a37064135b6021d6808662ddcb1eafcd7 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 26 Aug 2014 11:28:30 -0500 Subject: [PATCH] LU-5432 fld: don't loop forever on bogus FID sequences In fld_client_rpc() if the FLD query RPC returns -ENOENT then break the retry loop and return -ENOENT. Signed-off-by: John L. Hammond Change-Id: Id70a5d8f6c2105509149e72e8910fcb6c51732f0 Reviewed-on: http://review.whamcloud.com/11605 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Mike Pershin Reviewed-by: wangdi Reviewed-by: Oleg Drokin --- lustre/fld/fld_request.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lustre/fld/fld_request.c b/lustre/fld/fld_request.c index 33c5f97..44d5cd0 100644 --- a/lustre/fld/fld_request.c +++ b/lustre/fld/fld_request.c @@ -429,6 +429,12 @@ again: obd_get_request_slot(&exp->exp_obd->u.cli); rc = ptlrpc_queue_wait(req); obd_put_request_slot(&exp->exp_obd->u.cli); + + if (rc == -ENOENT) { + /* Don't loop forever on non-existing FID sequences. */ + GOTO(out_req, rc); + } + if (rc != 0) { if (imp->imp_state != LUSTRE_IMP_CLOSED) { /* Since LWP is not replayable, so it will keep -- 1.8.3.1