From: tappro Date: Wed, 10 Sep 2008 05:11:08 +0000 (+0000) Subject: - different deadline for AT during recovery X-Git-Tag: v1_7_100~1^136~3 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b45d11432cc77f90f0abb2fb19593ce706e5c712;p=fs%2Flustre-release.git - different deadline for AT during recovery b:16389 i:nathan, rread --- diff --git a/lustre/ptlrpc/service.c b/lustre/ptlrpc/service.c index 790faae..db708d4 100644 --- a/lustre/ptlrpc/service.c +++ b/lustre/ptlrpc/service.c @@ -700,15 +700,22 @@ static int ptlrpc_at_send_early_reply(struct ptlrpc_request *req, RETURN(-ENOSYS); } - if (extra_time) { - /* Fake our processing time into the future to ask the - clients for some extra amount of time */ - extra_time += cfs_time_current_sec() - - req->rq_arrival_time.tv_sec; - at_add(&svc->srv_at_estimate, extra_time); + if (req->rq_export->exp_in_recovery) { + /* don't increase server estimates during recovery, and give + clients the full recovery time. */ + newdl = cfs_time_current_sec() + + req->rq_export->exp_obd->obd_recovery_timeout; + } else { + if (extra_time) { + /* Fake our processing time into the future to ask the + clients for some extra amount of time */ + extra_time += cfs_time_current_sec() - + req->rq_arrival_time.tv_sec; + at_add(&svc->srv_at_estimate, extra_time); + } + newdl = req->rq_arrival_time.tv_sec + + at_get(&svc->srv_at_estimate); } - - newdl = req->rq_arrival_time.tv_sec + at_get(&svc->srv_at_estimate); if (req->rq_deadline >= newdl) { /* We're not adding any time, no need to send an early reply (e.g. maybe at adaptive_max) */