#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 */
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 */
/* 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 */
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;
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
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;
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;
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);