Whamcloud - gitweb
LU-6516 ofd: fix double spin_unlock
[fs/lustre-release.git] / lustre / ofd / ofd_io.c
index 14f8e13..892abb8 100644 (file)
@@ -172,7 +172,7 @@ static int ofd_inconsistency_verification_main(void *args)
 
        OBD_ALLOC_PTR(lr);
        if (unlikely(lr == NULL))
-               GOTO(out, rc = -ENOMEM);
+               GOTO(out_unlocked, rc = -ENOMEM);
 
        lr->lr_event = LE_PAIRS_VERIFY;
        lr->lr_active = LFSCK_TYPE_LAYOUT;
@@ -223,6 +223,8 @@ static int ofd_inconsistency_verification_main(void *args)
 
        GOTO(out, rc = 0);
 
+out_unlocked:
+       spin_lock(&ofd->ofd_inconsistency_lock);
 out:
        thread_set_flags(thread, SVC_STOPPED);
        wake_up_all(&thread->t_ctl_waitq);
@@ -676,7 +678,6 @@ out:
  * \param[in] rnb      remote buffers
  * \param[in] nr_local number of local buffers
  * \param[in] lnb      local buffers
- * \param[in] oti      request data from OST
  *
  * \retval             0 on successful prepare
  * \retval             negative value on error
@@ -684,7 +685,7 @@ out:
 int ofd_preprw(const struct lu_env *env, int cmd, struct obd_export *exp,
               struct obdo *oa, int objcount, struct obd_ioobj *obj,
               struct niobuf_remote *rnb, int *nr_local,
-              struct niobuf_local *lnb, struct obd_trans_info *oti)
+              struct niobuf_local *lnb)
 {
        struct tgt_session_info *tsi = tgt_ses_info(env);
        struct ofd_device       *ofd = ofd_exp(exp);
@@ -701,9 +702,7 @@ int ofd_preprw(const struct lu_env *env, int cmd, struct obd_export *exp,
        }
 
        if (tgt_ses_req(tsi) == NULL) { /* echo client case */
-               LASSERT(oti != NULL);
                info = ofd_info_init(env, exp);
-               ofd_oti2info(info, oti);
                jobid = NULL;
        } else {
                info = tsi2ofd_info(tsi);
@@ -1149,7 +1148,6 @@ out:
  * \param[in] rnb      remote buffers
  * \param[in] npages   number of local buffers
  * \param[in] lnb      local buffers
- * \param[in] oti      request data from OST
  * \param[in] old_rc   result of processing at this point
  *
  * \retval             0 on successful commit
@@ -1158,8 +1156,7 @@ out:
 int ofd_commitrw(const struct lu_env *env, int cmd, struct obd_export *exp,
                 struct obdo *oa, int objcount, struct obd_ioobj *obj,
                 struct niobuf_remote *rnb, int npages,
-                struct niobuf_local *lnb, struct obd_trans_info *oti,
-                int old_rc)
+                struct niobuf_local *lnb, int old_rc)
 {
        struct ofd_thread_info  *info = ofd_info(env);
        struct ofd_mod_data     *fmd;
@@ -1247,7 +1244,5 @@ int ofd_commitrw(const struct lu_env *env, int cmd, struct obd_export *exp,
                rc = -EPROTO;
        }
 
-       if (oti != NULL)
-               ofd_info2oti(info, oti);
        RETURN(rc);
 }