In lod_alloc_comp_entries() if OBD_ALLOC_LARGE fails and we free
ldo_mirrors then we set it to NULL to avoid a double free later.
Lustre-change: https://review.whamcloud.com/47008
Lustre-commit:
26f6b0e952b24de2a900f6f1eeae79fea6af4787
Test-Parameters: trivial
Signed-off-by: John L. Hammond <jhammond@whamcloud.com>
Change-Id: I27552d1eaecc06720190db9cfe89ded71b9fef53
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/47850
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
sizeof(*lo->ldo_comp_entries) * comp_count);
if (lo->ldo_comp_entries == NULL) {
OBD_FREE_PTR_ARRAY(lo->ldo_mirrors, mirror_count);
+ lo->ldo_mirrors = NULL;
lo->ldo_mirror_count = 0;
return -ENOMEM;
}
ENTRY;
LASSERT(lo);
- LASSERT(lo->ldo_comp_cnt > comp_idx && lo->ldo_comp_entries != NULL);
+ LASSERTF(lo->ldo_comp_cnt > comp_idx, "ldo_comp_cnt %u, comp_idx %u\n",
+ lo->ldo_comp_cnt, comp_idx);
+ LASSERT(lo->ldo_comp_entries != NULL);
lod_comp = &lo->ldo_comp_entries[comp_idx];
LASSERT(!(lod_comp->llc_flags & LCME_FL_EXTENSION));