From: Niu Yawei Date: Sun, 27 Apr 2014 17:06:32 +0000 (-0400) Subject: staging/lustre/clio: clear nowait flag agl lock re-enqueue X-Git-Tag: firefly_0821_release~176^2~3465^2~39^2~1156 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=34554afc055a381b6a963ce6cb4542c95ac5a875;p=firefly-linux-kernel-4.4.55.git staging/lustre/clio: clear nowait flag agl lock re-enqueue The LDLM_FL_BLOCK_NOWAIT flag should be cleared when re-enqueue the agl lock as normal glimpse, otherwise, it won't get size back if there is conflicting locks on other client. Signed-off-by: Niu Yawei Reviewed-on: http://review.whamcloud.com/9249 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4597 Reviewed-by: Bobi Jam Reviewed-by: Jinshan Xiong Reviewed-by: Ned Bass Reviewed-by: Fan Yong Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lustre/osc/osc_lock.c b/drivers/staging/lustre/lustre/osc/osc_lock.c index ef7b9c2b208e..1c6cafa3de70 100644 --- a/drivers/staging/lustre/lustre/osc/osc_lock.c +++ b/drivers/staging/lustre/lustre/osc/osc_lock.c @@ -1192,6 +1192,7 @@ static int osc_lock_wait(const struct lu_env *env, LASSERT(olck->ols_agl); olck->ols_agl = 0; + olck->ols_flags &= ~LDLM_FL_BLOCK_NOWAIT; rc = osc_lock_enqueue(env, slice, NULL, CEF_ASYNC | CEF_MUST); if (rc != 0) return rc;