Whamcloud - gitweb
LU-5396 lod: (and mdt, mgs) make some symbols static
[fs/lustre-release.git] / lustre / lod / lod_internal.h
index 7d9b95f..48bd2d4 100644 (file)
@@ -6,13 +6,13 @@
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 only,
  * as published by the Free Software Foundation.
-
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License version 2 for more details.  A copy is
  * included in the COPYING file that accompanied this code.
-
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -23,7 +23,7 @@
  * Copyright  2009 Sun Microsystems, Inc. All rights reserved
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 #define LOV_USES_ASSIGNED_STRIPE        0
 #define LOV_USES_DEFAULT_STRIPE         1
 
+/* Special values to remove LOV EA from disk */
+#define LOVEA_DELETE_VALUES(size, count, offset, pool)                 \
+       ((size) == 0 && (count) == 0 &&                                 \
+        (offset) == (typeof(offset))(-1) && (pool) == NULL)
+
+#define LMVEA_DELETE_VALUES(count, offset)                             \
+       ((count) == 0 && (offset) == (typeof(offset))(-1))
+
+#define LOV_OFFSET_DEFAULT             ((__u16)-1)
+
 struct lod_qos_rr {
        __u32                    lqr_start_idx; /* start index of new inode */
        __u32                    lqr_offset_idx; /* aliasing for start_idx */
@@ -58,7 +68,7 @@ struct pool_desc {
        struct ost_pool          pool_obds;     /* pool members */
        atomic_t                 pool_refcount;
        struct lod_qos_rr        pool_rr;
-       cfs_hlist_node_t         pool_hash;     /* access by poolname */
+       struct hlist_node        pool_hash;     /* access by poolname */
        struct list_head         pool_list;
        struct proc_dir_entry   *pool_proc_entry;
        struct obd_device       *pool_lobd;     /* owner */
@@ -136,7 +146,7 @@ struct lod_tgt_descs {
        /* Size of the lod_tgts array, granted to be a power of 2 */
        __u32                   ltd_tgts_size;
        /* number of registered TGTs */
-       int                     ltd_tgtnr;
+       __u32                   ltd_tgtnr;
        /* bitmap of TGTs available */
        cfs_bitmap_t            *ltd_tgt_bitmap;
        /* TGTs scheduled to be deleted */
@@ -153,7 +163,7 @@ struct lod_device {
        struct dt_device      lod_dt_dev;
        struct obd_export    *lod_child_exp;
        struct dt_device     *lod_child;
-       cfs_proc_dir_entry_t *lod_proc_entry;
+       struct proc_dir_entry *lod_proc_entry;
        struct lprocfs_stats *lod_stats;
        spinlock_t            lod_connects_lock;
        int                   lod_connects;
@@ -182,15 +192,15 @@ struct lod_device {
        struct lod_qos        lod_qos; /* qos info per lod */
 
        /* OST pool data */
-       struct ost_pool       lod_pool_info; /* all OSTs in a packed array */
-       int                   lod_pool_count;
-       cfs_hash_t           *lod_pools_hash_body; /* used for key access */
-       cfs_list_t            lod_pool_list; /* used for sequential access */
-       cfs_proc_dir_entry_t *lod_pool_proc_entry;
+       struct ost_pool         lod_pool_info; /* all OSTs in a packed array */
+       int                     lod_pool_count;
+       cfs_hash_t             *lod_pools_hash_body; /* used for key access */
+       struct list_head        lod_pool_list; /* used for sequential access */
+       struct proc_dir_entry  *lod_pool_proc_entry;
 
        enum lustre_sec_part   lod_sp_me;
 
-       cfs_proc_dir_entry_t *lod_symlink;
+       struct proc_dir_entry *lod_symlink;
 };
 
 #define lod_osts       lod_ost_descs.ltd_tgts
@@ -270,7 +280,7 @@ struct lod_it {
 struct lod_thread_info {
        /* per-thread buffer for LOV EA */
        void             *lti_ea_store;
-       int               lti_ea_store_size;
+       __u32             lti_ea_store_size;
        /* per-thread buffer for LMV EA */
        struct lu_buf     lti_buf;
        struct ost_id     lti_ostid;
@@ -284,6 +294,7 @@ struct lod_thread_info {
        struct dt_object_format lti_format;
        struct lu_name    lti_name;
        struct lu_buf     lti_linkea_buf;
+       struct dt_insert_rec lti_dt_rec;
 };
 
 extern const struct lu_device_operations lod_lu_ops;
@@ -375,6 +386,7 @@ lod_name_get(const struct lu_env *env, const void *area, int len)
                cfs_foreach_bit((__dev)->lod_ost_bitmap, (index))
 
 /* lod_dev.c */
+extern struct kmem_cache *lod_object_kmem;
 int lod_fld_lookup(const struct lu_env *env, struct lod_device *lod,
                   const struct lu_fid *fid, __u32 *tgt, int *flags);
 /* lod_lov.c */
@@ -424,13 +436,11 @@ int lod_parse_dir_striping(const struct lu_env *env, struct lod_object *lo,
                           const struct lu_buf *buf);
 int lod_initialize_objects(const struct lu_env *env, struct lod_object *mo,
                           struct lov_ost_data_v1 *objs);
-int lod_store_def_striping(const struct lu_env *env, struct dt_object *dt,
-                          struct thandle *th);
 int lod_verify_striping(struct lod_device *d, const struct lu_buf *buf,
                        bool is_from_disk);
 int lod_generate_and_set_lovea(const struct lu_env *env,
                               struct lod_object *mo, struct thandle *th);
-int lod_ea_store_resize(struct lod_thread_info *info, int size);
+int lod_ea_store_resize(struct lod_thread_info *info, size_t size);
 /* lod_pool.c */
 int lod_ost_pool_add(struct ost_pool *op, __u32 idx, unsigned int min_count);
 int lod_ost_pool_remove(struct ost_pool *op, __u32 idx);
@@ -458,6 +468,8 @@ int lod_procfs_init(struct lod_device *lod);
 void lod_procfs_fini(struct lod_device *lod);
 
 /* lod_object.c */
+extern struct dt_object_operations lod_obj_ops;
+extern struct lu_object_operations lod_lu_obj_ops;
 int lod_load_lmv_shards(const struct lu_env *env, struct lod_object *lo,
                        struct lu_buf *buf, bool resize);
 int lod_object_set_pool(struct lod_object *o, char *pool);