Whamcloud - gitweb
LU-4597 clio: clear nowait flag agl lock re-enqueue 28/9328/2
authorNiu Yawei <yawei.niu@intel.com>
Thu, 13 Feb 2014 07:07:14 +0000 (02:07 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 26 Feb 2014 23:15:39 +0000 (23:15 +0000)
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.

Lustre-change: http://review.whamcloud.com/9249
Lustre-commit: 85c352274b3435a41649e9a5089da83b54893d37

Change-Id: I421d033496b57fb3d24635587112eaab3ba2ea32
Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-on: http://review.whamcloud.com/9328
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osc/osc_lock.c

index a03a1d9..274d4a7 100644 (file)
@@ -1212,6 +1212,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;