Whamcloud - gitweb
LU-7446 clio: lov_io_init() should return error code
[fs/lustre-release.git] / lustre / lov / lov_dev.c
index 031253a..fe04050 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 
 #include "lov_cl_internal.h"
 
-cfs_mem_cache_t *lov_lock_kmem;
-cfs_mem_cache_t *lov_object_kmem;
-cfs_mem_cache_t *lov_thread_kmem;
-cfs_mem_cache_t *lov_session_kmem;
-cfs_mem_cache_t *lov_req_kmem;
+struct kmem_cache *lov_lock_kmem;
+struct kmem_cache *lov_object_kmem;
+struct kmem_cache *lov_thread_kmem;
+struct kmem_cache *lov_session_kmem;
 
-cfs_mem_cache_t *lovsub_lock_kmem;
-cfs_mem_cache_t *lovsub_object_kmem;
-cfs_mem_cache_t *lovsub_req_kmem;
+struct kmem_cache *lovsub_lock_kmem;
+struct kmem_cache *lovsub_object_kmem;
 
-cfs_mem_cache_t *lov_lock_link_kmem;
+struct kmem_cache *lov_lock_link_kmem;
 
 /** Lock class of lov_device::ld_mutex. */
-struct lock_class_key cl_lov_device_mutex_class;
+static struct lock_class_key cl_lov_device_mutex_class;
 
 struct lu_kmem_descr lov_caches[] = {
         {
@@ -82,11 +80,6 @@ struct lu_kmem_descr lov_caches[] = {
                 .ckd_size  = sizeof (struct lov_session)
         },
         {
-                .ckd_cache = &lov_req_kmem,
-                .ckd_name  = "lov_req_kmem",
-                .ckd_size  = sizeof (struct lov_req)
-        },
-        {
                 .ckd_cache = &lovsub_lock_kmem,
                 .ckd_name  = "lovsub_lock_kmem",
                 .ckd_size  = sizeof (struct lovsub_lock)
@@ -97,11 +90,6 @@ struct lu_kmem_descr lov_caches[] = {
                 .ckd_size  = sizeof (struct lovsub_object)
         },
         {
-                .ckd_cache = &lovsub_req_kmem,
-                .ckd_name  = "lovsub_req_kmem",
-                .ckd_size  = sizeof (struct lovsub_req)
-        },
-        {
                 .ckd_cache = &lov_lock_link_kmem,
                 .ckd_name  = "lov_lock_link_kmem",
                 .ckd_size  = sizeof (struct lov_lock_link)
@@ -113,50 +101,26 @@ struct lu_kmem_descr lov_caches[] = {
 
 /*****************************************************************************
  *
- * Lov transfer operations.
- *
- */
-
-static void lov_req_completion(const struct lu_env *env,
-                               const struct cl_req_slice *slice, int ioret)
-{
-        struct lov_req *lr;
-
-        ENTRY;
-        lr = cl2lov_req(slice);
-        OBD_SLAB_FREE_PTR(lr, lov_req_kmem);
-        EXIT;
-}
-
-static const struct cl_req_operations lov_req_ops = {
-        .cro_completion = lov_req_completion
-};
-
-/*****************************************************************************
- *
  * Lov device and device type functions.
  *
  */
 
 static void *lov_key_init(const struct lu_context *ctx,
-                          struct lu_context_key *key)
+                         struct lu_context_key *key)
 {
-        struct lov_thread_info *info;
+       struct lov_thread_info *info;
 
-        OBD_SLAB_ALLOC_PTR_GFP(info, lov_thread_kmem, CFS_ALLOC_IO);
-        if (info != NULL)
-                CFS_INIT_LIST_HEAD(&info->lti_closure.clc_list);
-        else
-                info = ERR_PTR(-ENOMEM);
-        return info;
+       OBD_SLAB_ALLOC_PTR_GFP(info, lov_thread_kmem, GFP_NOFS);
+       if (info == NULL)
+               info = ERR_PTR(-ENOMEM);
+       return info;
 }
 
 static void lov_key_fini(const struct lu_context *ctx,
-                         struct lu_context_key *key, void *data)
+                        struct lu_context_key *key, void *data)
 {
-        struct lov_thread_info *info = data;
-        LINVRNT(cfs_list_empty(&info->lti_closure.clc_list));
-        OBD_SLAB_FREE_PTR(info, lov_thread_kmem);
+       struct lov_thread_info *info = data;
+       OBD_SLAB_FREE_PTR(info, lov_thread_kmem);
 }
 
 struct lu_context_key lov_key = {
@@ -166,14 +130,14 @@ struct lu_context_key lov_key = {
 };
 
 static void *lov_session_key_init(const struct lu_context *ctx,
-                                  struct lu_context_key *key)
+                                 struct lu_context_key *key)
 {
-        struct lov_session *info;
+       struct lov_session *info;
 
-        OBD_SLAB_ALLOC_PTR_GFP(info, lov_session_kmem, CFS_ALLOC_IO);
-        if (info == NULL)
-                info = ERR_PTR(-ENOMEM);
-        return info;
+       OBD_SLAB_ALLOC_PTR_GFP(info, lov_session_kmem, GFP_NOFS);
+       if (info == NULL)
+               info = ERR_PTR(-ENOMEM);
+       return info;
 }
 
 static void lov_session_key_fini(const struct lu_context *ctx,
@@ -254,26 +218,6 @@ static int lov_device_init(const struct lu_env *env, struct lu_device *d,
         RETURN(rc);
 }
 
-static int lov_req_init(const struct lu_env *env, struct cl_device *dev,
-                        struct cl_req *req)
-{
-        struct lov_req *lr;
-        int result;
-
-        ENTRY;
-        OBD_SLAB_ALLOC_PTR_GFP(lr, lov_req_kmem, CFS_ALLOC_IO);
-        if (lr != NULL) {
-                cl_req_slice_add(req, &lr->lr_cl, dev, &lov_req_ops);
-                result = 0;
-        } else
-                result = -ENOMEM;
-        RETURN(result);
-}
-
-static const struct cl_device_operations lov_cl_ops = {
-        .cdo_req_init = lov_req_init
-};
-
 static void lov_emerg_free(struct lov_device_emerg **emrg, int nr)
 {
         int i;
@@ -458,7 +402,7 @@ static int lov_process_config(const struct lu_env *env,
                 case LCFG_LOV_ADD_INA:
                         rc = lov_cl_add_target(env, d, index);
                         if (rc != 0)
-                                lov_del_target(d->ld_obd, index, 0, 0);
+                               lov_del_target(d->ld_obd, index, NULL, 0);
                         break;
                 case LCFG_LOV_DEL_OBD:
                         lov_cl_del_target(env, d, index);
@@ -490,7 +434,6 @@ static struct lu_device *lov_device_alloc(const struct lu_env *env,
         cl_device_init(&ld->ld_cl, t);
         d = lov2lu_dev(ld);
         d->ld_ops        = &lov_lu_ops;
-        ld->ld_cl.cd_ops = &lov_cl_ops;
 
        mutex_init(&ld->ld_mutex);
        lockdep_set_class(&ld->ld_mutex, &cl_lov_device_mutex_class);
@@ -528,6 +471,5 @@ struct lu_device_type lov_device_type = {
         .ldt_ops      = &lov_device_type_ops,
         .ldt_ctx_tags = LCT_CL_THREAD
 };
-EXPORT_SYMBOL(lov_device_type);
 
 /** @} lov */