X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftarget%2Ftgt_lastrcvd.c;h=55e59959fab633f02ab6800ed845865f72eb1026;hp=1c907a601a027d55b352af4baa14530cae84db54;hb=9197849bc761f7fbbdee65916ad1346eec79d412;hpb=937656dca50d4b0ba8501fbea0a450c663cdabcc diff --git a/lustre/target/tgt_lastrcvd.c b/lustre/target/tgt_lastrcvd.c index 1c907a6..55e5995 100644 --- a/lustre/target/tgt_lastrcvd.c +++ b/lustre/target/tgt_lastrcvd.c @@ -517,6 +517,7 @@ static int tgt_client_data_update(const struct lu_env *env, RETURN(PTR_ERR(th)); tti_buf_lcd(tti); + mutex_lock(&ted->ted_lcd_lock); rc = dt_declare_record_write(env, tgt->lut_last_rcvd, &tti->tti_buf, ted->ted_lr_off, th); @@ -546,6 +547,7 @@ static int tgt_client_data_update(const struct lu_env *env, rc = tgt_client_data_write(env, tgt, ted->ted_lcd, &tti->tti_off, th); EXIT; out: + mutex_unlock(&ted->ted_lcd_lock); dt_trans_stop(env, tgt->lut_bottom, th); CDEBUG(D_INFO, "%s: update last_rcvd client data for UUID = %s, " "last_transno = "LPU64": rc = %d\n", tgt->lut_obd->obd_name, @@ -1069,10 +1071,8 @@ int tgt_client_del(const struct lu_env *env, struct obd_export *exp) RETURN(rc); } - mutex_lock(&ted->ted_lcd_lock); memset(ted->ted_lcd->lcd_uuid, 0, sizeof ted->ted_lcd->lcd_uuid); rc = tgt_client_data_update(env, exp); - mutex_unlock(&ted->ted_lcd_lock); CDEBUG(rc == 0 ? D_INFO : D_ERROR, "%s: zeroing out client %s at idx %u (%llu), rc %d\n",