Whamcloud - gitweb
LU-6142 lov: convert container_of0() calls. 82/38382/4
authorMr NeilBrown <neilb@suse.de>
Mon, 27 Apr 2020 05:31:55 +0000 (15:31 +1000)
committerOleg Drokin <green@whamcloud.com>
Sat, 4 Jul 2020 03:02:29 +0000 (03:02 +0000)
Most calls to container_of0() in lustre/lov/ are preceded by an
LINVRNT() which assures us that the pointer is valid, so
container_of() can be used instead.

Only in lov2obd() is there not context, so that call is changed to use
container_of_safe()

Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I8b3ccc8f0ac1a32122f043e8feec078fcfe2452b
Reviewed-on: https://review.whamcloud.com/38382
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.super@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/lov/lov_cl_internal.h
lustre/lov/lov_internal.h

index f899c11..083b5ba 100644 (file)
@@ -697,8 +697,8 @@ static inline struct lu_device *lov2lu_dev(struct lov_device *lov)
 
 static inline struct lov_device *lu2lov_dev(const struct lu_device *d)
 {
-        LINVRNT(d->ld_type == &lov_device_type);
-        return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
+       LINVRNT(d->ld_type == &lov_device_type);
+       return container_of(d, struct lov_device, ld_cl.cd_lu_dev);
 }
 
 static inline struct cl_device *lovsub2cl_dev(struct lovsub_device *lovsub)
@@ -713,14 +713,14 @@ static inline struct lu_device *lovsub2lu_dev(struct lovsub_device *lovsub)
 
 static inline struct lovsub_device *lu2lovsub_dev(const struct lu_device *d)
 {
-        LINVRNT(d->ld_type == &lovsub_device_type);
-        return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
+       LINVRNT(d->ld_type == &lovsub_device_type);
+       return container_of(d, struct lovsub_device, acid_cl.cd_lu_dev);
 }
 
 static inline struct lovsub_device *cl2lovsub_dev(const struct cl_device *d)
 {
-        LINVRNT(d->cd_lu_dev.ld_type == &lovsub_device_type);
-        return container_of0(d, struct lovsub_device, acid_cl);
+       LINVRNT(d->cd_lu_dev.ld_type == &lovsub_device_type);
+       return container_of(d, struct lovsub_device, acid_cl);
 }
 
 static inline struct lu_object *lov2lu(struct lov_object *lov)
@@ -735,48 +735,48 @@ static inline struct cl_object *lov2cl(struct lov_object *lov)
 
 static inline struct lov_object *lu2lov(const struct lu_object *obj)
 {
-        LINVRNT(lov_is_object(obj));
-        return container_of0(obj, struct lov_object, lo_cl.co_lu);
+       LINVRNT(lov_is_object(obj));
+       return container_of(obj, struct lov_object, lo_cl.co_lu);
 }
 
 static inline struct lov_object *cl2lov(const struct cl_object *obj)
 {
-        LINVRNT(lov_is_object(&obj->co_lu));
-        return container_of0(obj, struct lov_object, lo_cl);
+       LINVRNT(lov_is_object(&obj->co_lu));
+       return container_of(obj, struct lov_object, lo_cl);
 }
 
 static inline struct lu_object *lovsub2lu(struct lovsub_object *los)
 {
-        return &los->lso_cl.co_lu;
+       return &los->lso_cl.co_lu;
 }
 
 static inline struct cl_object *lovsub2cl(struct lovsub_object *los)
 {
-        return &los->lso_cl;
+       return &los->lso_cl;
 }
 
 static inline struct lovsub_object *cl2lovsub(const struct cl_object *obj)
 {
-        LINVRNT(lovsub_is_object(&obj->co_lu));
-        return container_of0(obj, struct lovsub_object, lso_cl);
+       LINVRNT(lovsub_is_object(&obj->co_lu));
+       return container_of(obj, struct lovsub_object, lso_cl);
 }
 
 static inline struct lovsub_object *lu2lovsub(const struct lu_object *obj)
 {
-        LINVRNT(lovsub_is_object(obj));
-        return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
+       LINVRNT(lovsub_is_object(obj));
+       return container_of(obj, struct lovsub_object, lso_cl.co_lu);
 }
 
 static inline struct lov_lock *cl2lov_lock(const struct cl_lock_slice *slice)
 {
-        LINVRNT(lov_is_object(&slice->cls_obj->co_lu));
-        return container_of(slice, struct lov_lock, lls_cl);
+       LINVRNT(lov_is_object(&slice->cls_obj->co_lu));
+       return container_of(slice, struct lov_lock, lls_cl);
 }
 
 static inline struct lov_page *cl2lov_page(const struct cl_page_slice *slice)
 {
-        LINVRNT(lov_is_object(&slice->cpl_obj->co_lu));
-        return container_of0(slice, struct lov_page, lps_cl);
+       LINVRNT(lov_is_object(&slice->cpl_obj->co_lu));
+       return container_of(slice, struct lov_page, lps_cl);
 }
 
 static inline struct lov_io *cl2lov_io(const struct lu_env *env,
index 8e47092..d7ca81f 100644 (file)
@@ -369,7 +369,7 @@ static inline bool lov_oinfo_is_dummy(const struct lov_oinfo *loi)
 
 static inline struct obd_device *lov2obd(const struct lov_obd *lov)
 {
-       return container_of0(lov, struct obd_device, u.lov);
+       return container_of_safe(lov, struct obd_device, u.lov);
 }
 
 static inline void lov_lsm2layout(struct lov_stripe_md *lsm,