Whamcloud - gitweb
LU-14781 osp: osp object header could be NULL 55/44055/4
authorBobi Jam <bobijam@whamcloud.com>
Fri, 3 Sep 2021 04:03:18 +0000 (12:03 +0800)
committerOleg Drokin <green@whamcloud.com>
Wed, 22 Sep 2021 04:42:03 +0000 (04:42 +0000)
Don't call lu_object_header_fini upon NULL header in
osp_object_free().

Call trace:
lu_object_free.isra.30+0xf2/0x170 [obdclass]
lu_object_find_at+0x496/0x930 [obdclass]
lod_initialize_objects+0x3e4/0xba0 [lod]
lod_parse_striping+0x693/0xc20 [lod]
lod_striping_load+0x2b2/0x660 [lod]
lod_declare_destroy+0x12b/0x600 [lod]
mdd_declare_finish_unlink+0x91/0x210 [mdd]
mdd_unlink+0x48f/0xab0 [mdd]
mdt_reint_unlink+0xc32/0x1550 [mdt]
mdt_reint_rec+0x83/0x210 [mdt]
mdt_reint_internal+0x6e1/0xb00 [mdt]
mdt_reint+0x67/0x140 [mdt]
tgt_request_handle+0xaee/0x15f0 [ptlrpc]
ptlrpc_server_handle_request+0x24b/0xab0 [ptlrpc]
ptlrpc_main+0xb34/0x1470 [ptlrpc]
kthread+0xd1/0xe0

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Iec23cf06dffaa64c6f5853c28382ba930ee1076b
Reviewed-on: https://review.whamcloud.com/44055
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/osp/osp_object.c

index 5fb55bf..8126eb0 100644 (file)
@@ -2349,7 +2349,8 @@ static void osp_object_free(const struct lu_env *env, struct lu_object *o)
        int                     count;
 
        dt_object_fini(&obj->opo_obj);
        int                     count;
 
        dt_object_fini(&obj->opo_obj);
-       lu_object_header_fini(h);
+       if (h)
+               lu_object_header_fini(h);
        list_for_each_entry_safe(oxe, tmp, &obj->opo_xattr_list, oxe_list) {
                list_del_init(&oxe->oxe_list);
                count = atomic_read(&oxe->oxe_ref);
        list_for_each_entry_safe(oxe, tmp, &obj->opo_xattr_list, oxe_list) {
                list_del_init(&oxe->oxe_list);
                count = atomic_read(&oxe->oxe_ref);