From: green Date: Tue, 20 May 2008 19:49:12 +0000 (+0000) Subject: b=15776 X-Git-Tag: v1_8_0_110~519 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=1064508f104f1367aaf43da2cc68031db33a46b6;p=fs%2Flustre-release.git b=15776 r=shadow,vitaly Prevent locks stalls on glimpse races --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 8b19783..2e13f41 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -777,6 +777,14 @@ Details : With this patch, three improvements are included: 2. display the inaccurate data in the output of "lfs quota". 3. try to get quota info when "lfs quota" is executed. +Severity : normal +Frequency : rare +Bugzilla : 15776 +Description: Extent locks not granted with no conflicts sometimes. +Details : When race occurs in glimpse handler and nothing is returned, + we do not reprocess the queue after lock cancel, and that leads + to a stall until next activity on a resource + -------------------------------------------------------------------------------- 2007-12-07 Cluster File Systems, Inc. diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c index 4a73270..8e35693 100644 --- a/lustre/ldlm/ldlm_lockd.c +++ b/lustre/ldlm/ldlm_lockd.c @@ -802,6 +802,9 @@ int ldlm_server_glimpse_ast(struct ldlm_lock *lock, void *data) rc = ldlm_res_lvbo_update(res, req->rq_repmsg, REPLY_REC_OFF, 1); ptlrpc_req_finished(req); + if (rc == -ERESTART) + ldlm_reprocess_all(res); + RETURN(rc); }