Whamcloud - gitweb
LU-4597 clio: clear nowait flag agl lock re-enqueue 49/9249/2
authorNiu Yawei <yawei.niu@intel.com>
Thu, 13 Feb 2014 07:07:14 +0000 (02:07 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Sat, 22 Feb 2014 08:02:55 +0000 (08:02 +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.

Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: Ifd311606e824d6574bfbf3256841061e8867214a
Reviewed-on: http://review.whamcloud.com/9249
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Ned Bass <bass6@llnl.gov>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osc/osc_lock.c

index 12b1984..58e9d96 100644 (file)
@@ -1284,6 +1284,7 @@ static int osc_lock_wait(const struct lu_env *env,
 
                 LASSERT(olck->ols_agl);
                olck->ols_agl = 0;
 
                 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;
                 rc = osc_lock_enqueue(env, slice, NULL, CEF_ASYNC | CEF_MUST);
                 if (rc != 0)
                         return rc;