diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c index d6c15c7778290a291ced786e865ced8d2698b739..63bdd9ae67983713c08a359fe44c6304346856c0 100644 --- a/lustre/mgc/mgc_request.c +++ b/lustre/mgc/mgc_request.c @@ -336,10 +336,9 @@ static int mgc_requeue_add(struct config_llog_data *cld, int later) CDEBUG(D_INFO, "log %s: requeue (l=%d r=%d sp=%d st=%x)\n", cld->cld_logname, later, atomic_read(&cld->cld_refcount), cld->cld_stopping, rq_state); - + /* Hold lock for rq_state */ spin_lock(&config_list_lock); - cld->cld_lostlock = 1; if (cld->cld_stopping || (rq_state & RQ_STOP)) { spin_unlock(&config_list_lock); @@ -347,6 +346,8 @@ static int mgc_requeue_add(struct config_llog_data *cld, int later) RETURN(0); } + cld->cld_lostlock = 1; + if (!(rq_state & RQ_RUNNING)) { LASSERT(rq_state == 0); rq_state = RQ_RUNNING | (later ? RQ_LATER : RQ_NOW);