Whamcloud - gitweb
LU-6179 llite: remove LOCKAHEAD_OLD compatibility
[fs/lustre-release.git] / lustre / ofd / ofd_dev.c
index c8a5140..bb60e94 100644 (file)
@@ -455,6 +455,14 @@ static int ofd_object_init(const struct lu_env *env, struct lu_object *o,
        RETURN(rc);
 }
 
+static void ofd_object_free_rcu(struct rcu_head *head)
+{
+       struct ofd_object *of = container_of(head, struct ofd_object,
+                                            ofo_header.loh_rcu);
+
+       kmem_cache_free(ofd_object_kmem, of);
+}
+
 /**
  * Implementation of lu_object_operations::loo_object_free.
  *
@@ -476,7 +484,8 @@ static void ofd_object_free(const struct lu_env *env, struct lu_object *o)
 
        lu_object_fini(o);
        lu_object_header_fini(h);
-       OBD_SLAB_FREE_PTR(of, ofd_object_kmem);
+       OBD_FREE_PRE(of, sizeof(*of), "slab-freed");
+       call_rcu(&of->ofo_header.loh_rcu, ofd_object_free_rcu);
        EXIT;
 }
 
@@ -1731,18 +1740,8 @@ static int ofd_create_hdl(struct tgt_session_info *tsi)
 out:
        mutex_unlock(&oseq->os_create_lock);
 out_nolock:
-       if (rc == 0) {
-#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 8, 53, 0)
-               struct ofd_thread_info  *info = ofd_info(tsi->tsi_env);
-               struct lu_fid           *fid = &info->fti_fid;
-
-               /* For compatible purpose, it needs to convert back to
-                * OST ID before put it on wire. */
-               *fid = rep_oa->o_oi.oi_fid;
-               fid_to_ostid(fid, &rep_oa->o_oi);
-#endif
+       if (rc == 0)
                rep_oa->o_valid |= OBD_MD_FLID | OBD_MD_FLGROUP;
-       }
        ofd_seq_put(tsi->tsi_env, oseq);
 
 out_sem: