Whamcloud - gitweb
LU-3105 osd: remove capa related stuff from servers
[fs/lustre-release.git] / lustre / obdclass / local_storage.c
index 89fc5df..d183adf 100644 (file)
@@ -20,7 +20,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
  */
 /*
  * lustre/obdclass/local_storage.c
@@ -35,7 +35,7 @@
 #include "local_storage.h"
 
 /* all initialized local storages on this node are linked on this */
-static CFS_LIST_HEAD(ls_list_head);
+static struct list_head ls_list_head = LIST_HEAD_INIT(ls_list_head);
 static DEFINE_MUTEX(ls_list_mutex);
 
 static int ls_object_init(const struct lu_env *env, struct lu_object *o,
@@ -68,14 +68,14 @@ static void ls_object_free(const struct lu_env *env, struct lu_object *o)
        OBD_FREE_PTR(obj);
 }
 
-struct lu_object_operations ls_lu_obj_ops = {
+static struct lu_object_operations ls_lu_obj_ops = {
        .loo_object_init  = ls_object_init,
        .loo_object_free  = ls_object_free,
 };
 
-struct lu_object *ls_object_alloc(const struct lu_env *env,
-                                 const struct lu_object_header *_h,
-                                 struct lu_device *d)
+static struct lu_object *ls_object_alloc(const struct lu_env *env,
+                                        const struct lu_object_header *_h,
+                                        struct lu_device *d)
 {
        struct lu_object_header *h;
        struct ls_object        *o;
@@ -108,7 +108,7 @@ static struct ls_device *__ls_find_dev(struct dt_device *dev)
 {
        struct ls_device *ls, *ret = NULL;
 
-       cfs_list_for_each_entry(ls, &ls_list_head, ls_linkage) {
+       list_for_each_entry(ls, &ls_list_head, ls_linkage) {
                if (ls->ls_osd == dev) {
                        atomic_inc(&ls->ls_refcount);
                        ret = ls;
@@ -156,7 +156,7 @@ struct ls_device *ls_device_get(struct dt_device *dev)
                GOTO(out_ls, ls = ERR_PTR(-ENOMEM));
 
        atomic_set(&ls->ls_refcount, 1);
-       CFS_INIT_LIST_HEAD(&ls->ls_los_list);
+       INIT_LIST_HEAD(&ls->ls_los_list);
        mutex_init(&ls->ls_los_mutex);
 
        ls->ls_osd = dev;
@@ -167,7 +167,7 @@ struct ls_device *ls_device_get(struct dt_device *dev)
        ls->ls_top_dev.dd_lu_dev.ld_site = dev->dd_lu_dev.ld_site;
 
        /* finally add ls to the list */
-       cfs_list_add(&ls->ls_linkage, &ls_list_head);
+       list_add(&ls->ls_linkage, &ls_list_head);
 out_ls:
        mutex_unlock(&ls_list_mutex);
        RETURN(ls);
@@ -181,8 +181,8 @@ void ls_device_put(const struct lu_env *env, struct ls_device *ls)
 
        mutex_lock(&ls_list_mutex);
        if (atomic_read(&ls->ls_refcount) == 0) {
-               LASSERT(cfs_list_empty(&ls->ls_los_list));
-               cfs_list_del(&ls->ls_linkage);
+               LASSERT(list_empty(&ls->ls_los_list));
+               list_del(&ls->ls_linkage);
                lu_site_purge(env, ls->ls_top_dev.dd_lu_dev.ld_site, ~0);
                lu_device_fini(&ls->ls_top_dev.dd_lu_dev);
                OBD_FREE_PTR(ls);
@@ -254,7 +254,7 @@ int local_object_create(const struct lu_env *env,
                        struct dt_object_format *dof, struct thandle *th)
 {
        struct dt_thread_info   *dti = dt_info(env);
-       obd_id                   lastid;
+       u64                      lastid;
        int                      rc;
 
        ENTRY;
@@ -291,13 +291,14 @@ int local_object_create(const struct lu_env *env,
 /*
  * Create local named object (file, directory or index) in parent directory.
  */
-struct dt_object *__local_file_create(const struct lu_env *env,
-                                     const struct lu_fid *fid,
-                                     struct local_oid_storage *los,
-                                     struct ls_device *ls,
-                                     struct dt_object *parent,
-                                     const char *name, struct lu_attr *attr,
-                                     struct dt_object_format *dof)
+static struct dt_object *__local_file_create(const struct lu_env *env,
+                                            const struct lu_fid *fid,
+                                            struct local_oid_storage *los,
+                                            struct ls_device *ls,
+                                            struct dt_object *parent,
+                                            const char *name,
+                                            struct lu_attr *attr,
+                                            struct dt_object_format *dof)
 {
        struct dt_thread_info   *dti    = dt_info(env);
        struct lu_object_conf   *conf   = &dti->dti_conf;
@@ -328,8 +329,13 @@ struct dt_object *__local_file_create(const struct lu_env *env,
                GOTO(trans_stop, rc);
 
        if (dti->dti_dof.dof_type == DFT_DIR) {
-               dt_declare_ref_add(env, dto, th);
-               dt_declare_ref_add(env, parent, th);
+               rc = dt_declare_ref_add(env, dto, th);
+               if (rc < 0)
+                       GOTO(trans_stop, rc);
+
+               rc = dt_declare_ref_add(env, parent, th);
+               if (rc < 0)
+                       GOTO(trans_stop, rc);
        }
 
        rec->rec_fid = fid;
@@ -362,14 +368,14 @@ struct dt_object *__local_file_create(const struct lu_env *env,
                rec->rec_fid = fid;
                /* Add "." and ".." for newly created dir */
                rc = dt_insert(env, dto, (const struct dt_rec *)rec,
-                              (const struct dt_key *)".", th, BYPASS_CAPA, 1);
+                              (const struct dt_key *)".", th, 1);
                if (rc != 0)
                        GOTO(destroy, rc);
 
                dt_ref_add(env, dto, th);
                rec->rec_fid = lu_object_fid(&parent->do_lu);
                rc = dt_insert(env, dto, (const struct dt_rec *)rec,
-                              (const struct dt_key *)"..", th, BYPASS_CAPA, 1);
+                              (const struct dt_key *)"..", th, 1);
                if (rc != 0)
                        GOTO(destroy, rc);
        }
@@ -378,7 +384,7 @@ struct dt_object *__local_file_create(const struct lu_env *env,
        rec->rec_type = dto->do_lu.lo_header->loh_attr;
        dt_write_lock(env, parent, 0);
        rc = dt_insert(env, parent, (const struct dt_rec *)rec,
-                      (const struct dt_key *)name, th, BYPASS_CAPA, 1);
+                      (const struct dt_key *)name, th, 1);
        if (dti->dti_dof.dof_type == DFT_DIR)
                dt_ref_add(env, parent, th);
        dt_write_unlock(env, parent);
@@ -634,7 +640,7 @@ int local_object_unlink(const struct lu_env *env, struct dt_device *dt,
                GOTO(stop, rc);
 
        dt_write_lock(env, dto, 0);
-       rc = dt_delete(env, parent, (struct dt_key *)name, th, BYPASS_CAPA);
+       rc = dt_delete(env, parent, (struct dt_key *)name, th);
        if (rc < 0)
                GOTO(unlock, rc);
 
@@ -645,7 +651,7 @@ int local_object_unlink(const struct lu_env *env, struct dt_device *dt,
                rec->rec_fid = &dti->dti_fid;
                rec->rec_type = dto->do_lu.lo_header->loh_attr;
                rc = dt_insert(env, parent, (const struct dt_rec *)rec,
-                              (const struct dt_key *)name, th, BYPASS_CAPA, 1);
+                              (const struct dt_key *)name, th, 1);
                GOTO(unlock, rc);
        }
 
@@ -664,7 +670,7 @@ struct local_oid_storage *dt_los_find(struct ls_device *ls, __u64 seq)
 {
        struct local_oid_storage *los, *ret = NULL;
 
-       cfs_list_for_each_entry(los, &ls->ls_los_list, los_list) {
+       list_for_each_entry(los, &ls->ls_los_list, los_list) {
                if (los->los_seq == seq) {
                        atomic_inc(&los->los_refcount);
                        ret = los;
@@ -686,8 +692,9 @@ void dt_los_put(struct local_oid_storage *los)
 /* after Lustre 2.3 release there may be old file to store last generated FID
  * If such file exists then we have to read its content
  */
-int lastid_compat_check(const struct lu_env *env, struct dt_device *dev,
-                       __u64 lastid_seq, __u32 *first_oid, struct ls_device *ls)
+static int lastid_compat_check(const struct lu_env *env, struct dt_device *dev,
+                              __u64 lastid_seq, __u32 *first_oid,
+                              struct ls_device *ls)
 {
        struct dt_thread_info   *dti = dt_info(env);
        struct dt_object        *root = NULL;
@@ -779,7 +786,7 @@ int local_oid_storage_init(const struct lu_env *env, struct dt_device *dev,
 {
        struct dt_thread_info   *dti = dt_info(env);
        struct ls_device        *ls;
-       obd_id                   lastid;
+       u64                      lastid;
        struct dt_object        *o = NULL;
        struct thandle          *th;
        __u32                    first_oid = fid_oid(first_fid);
@@ -805,7 +812,7 @@ int local_oid_storage_init(const struct lu_env *env, struct dt_device *dev,
        mutex_init(&(*los)->los_id_lock);
        (*los)->los_dev = &ls->ls_top_dev;
        atomic_inc(&ls->ls_refcount);
-       cfs_list_add(&(*los)->los_list, &ls->ls_los_list);
+       list_add(&(*los)->los_list, &ls->ls_los_list);
 
        /* Use {seq, 0, 0} to create the LAST_ID file for every
         * sequence.  OIDs start at LUSTRE_FID_INIT_OID.
@@ -882,7 +889,7 @@ out_trans:
        }
 out_los:
        if (rc != 0) {
-               cfs_list_del(&(*los)->los_list);
+               list_del(&(*los)->los_list);
                atomic_dec(&ls->ls_refcount);
                OBD_FREE_PTR(*los);
                *los = NULL;
@@ -925,7 +932,7 @@ void local_oid_storage_fini(const struct lu_env *env,
 
        if (los->los_obj)
                lu_object_put_nocache(env, &los->los_obj->do_lu);
-       cfs_list_del(&los->los_list);
+       list_del(&los->los_list);
        OBD_FREE_PTR(los);
        mutex_unlock(&ls->ls_los_mutex);
        ls_device_put(env, ls);