Whamcloud - gitweb
LU-9859 lod: use linux kernel bitmap API
[fs/lustre-release.git] / lustre / lod / lod_internal.h
index 8e36b08..68d890d 100644 (file)
@@ -87,7 +87,8 @@ struct lod_avoid_guide {
        /* number of allocated array items */
        unsigned int            lag_oaa_size;
        /* bitmap of OSTs avoid guidance */
-       struct cfs_bitmap       *lag_ost_avoid_bitmap;
+       unsigned long           *lag_ost_avoid_bitmap;
+       u32                     lag_ost_avoid_size;
        /* how many OSTs are available for alloc */
        __u32                   lag_ost_avail;
 };
@@ -404,7 +405,7 @@ static inline int lu_device_is_lod(struct lu_device *d)
 static inline struct lod_device* lu2lod_dev(struct lu_device *d)
 {
        LASSERT(lu_device_is_lod(d));
-       return container_of0(d, struct lod_device, lod_dt_dev.dd_lu_dev);
+       return container_of_safe(d, struct lod_device, lod_dt_dev.dd_lu_dev);
 }
 
 static inline struct lu_device *lod2lu_dev(struct lod_device *d)
@@ -420,13 +421,13 @@ static inline struct obd_device *lod2obd(struct lod_device *d)
 static inline struct lod_device *dt2lod_dev(struct dt_device *d)
 {
        LASSERT(lu_device_is_lod(&d->dd_lu_dev));
-       return container_of0(d, struct lod_device, lod_dt_dev);
+       return container_of(d, struct lod_device, lod_dt_dev);
 }
 
 static inline struct lod_object *lu2lod_obj(struct lu_object *o)
 {
        LASSERT(ergo(o != NULL, lu_device_is_lod(o->lo_dev)));
-       return container_of0(o, struct lod_object, ldo_obj.do_lu);
+       return container_of_safe(o, struct lod_object, ldo_obj.do_lu);
 }
 
 static inline struct lu_object *lod2lu_obj(struct lod_object *obj)
@@ -442,7 +443,7 @@ static inline const struct lu_fid *lod_object_fid(struct lod_object *obj)
 static inline struct lod_object *lod_obj(const struct lu_object *o)
 {
        LASSERT(lu_device_is_lod(o->lo_dev));
-       return container_of0(o, struct lod_object, ldo_obj.do_lu);
+       return container_of(o, struct lod_object, ldo_obj.do_lu);
 }
 
 static inline struct lod_object *lod_dt_obj(const struct dt_object *d)
@@ -452,8 +453,8 @@ static inline struct lod_object *lod_dt_obj(const struct dt_object *d)
 
 static inline struct dt_object* lod_object_child(struct lod_object *o)
 {
-       return container_of0(lu_object_next(lod2lu_obj(o)),
-                       struct dt_object, do_lu);
+       return container_of(lu_object_next(lod2lu_obj(o)),
+                           struct dt_object, do_lu);
 }
 
 static inline bool lod_obj_is_striped(struct dt_object *dt)
@@ -686,12 +687,11 @@ int lod_qos_parse_config(const struct lu_env *env, struct lod_object *lo,
                         const struct lu_buf *buf);
 int lod_qos_prep_create(const struct lu_env *env, struct lod_object *lo,
                        struct lu_attr *attr, struct thandle *th,
-                       int comp_idx);
+                       int comp_idx, __u64 reserve);
 __u16 lod_comp_entry_stripe_count(struct lod_object *lo,
-                                 struct lod_layout_component *entry,
-                                 bool is_dir);
+                                 int comp_idx, bool is_dir);
 __u16 lod_get_stripe_count(struct lod_device *lod, struct lod_object *lo,
-                          __u16 stripe_count, bool overstriping);
+                          int comp_idx, __u16 stripe_count, bool overstriping);
 void lod_qos_statfs_update(const struct lu_env *env, struct lod_device *lod,
                           struct lu_tgt_descs *ltd);