Whamcloud - gitweb
LU-6078 utils: fix copytool file bounds checking
[fs/lustre-release.git] / lustre / lod / lod_internal.h
index 0aa33c4..3d6fa6d 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 */
@@ -214,8 +224,8 @@ struct lod_dir_stripe_info {
        __u32   ldsi_def_hash_type;
        __u32   ldsi_hash_type;
 
-       unsigned int ldsi_striping_cached:1,
-                    ldsi_def_striping_set:1,
+       unsigned int ldsi_def_striping_set:1,
+                    ldsi_def_striping_cached:1,
                     ldsi_striped:1;
 };
 
@@ -241,6 +251,7 @@ struct lod_object {
        unsigned int       ldo_stripes_allocated:16,
                           ldo_striping_cached:1,
                           ldo_def_striping_set:1,
+                          ldo_def_striping_cached:1,
        /* ldo_dir_slave_stripe indicate this is a slave stripe of
         * a striped dir */
                           ldo_dir_slave_stripe:1;
@@ -254,9 +265,9 @@ struct lod_object {
 #define ldo_dir_def_stripenr   ldo_dir_stripe->ldsi_def_stripenr
 #define ldo_dir_hash_type      ldo_dir_stripe->ldsi_hash_type
 #define ldo_dir_def_hash_type  ldo_dir_stripe->ldsi_def_hash_type
-#define ldo_dir_striping_cached        ldo_dir_stripe->ldsi_striping_cached
 #define ldo_dir_striped                ldo_dir_stripe->ldsi_striped
 #define ldo_dir_def_striping_set       ldo_dir_stripe->ldsi_def_striping_set
+#define ldo_dir_def_striping_cached    ldo_dir_stripe->ldsi_def_striping_cached
 #define ldo_dir_def_stripe_offset      ldo_dir_stripe->ldsi_def_stripe_offset
 
 struct lod_it {
@@ -376,6 +387,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 */
@@ -425,8 +437,6 @@ 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,
@@ -459,6 +469,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);