X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdfilter%2Ffilter.c;h=6501b60fffcaff10f4d7e00803663cbe64036a7e;hp=71cb1cf9ccb770e0bfd91e4b4bcb0f3ee53b34f8;hb=45006597080721052cdd858b52054290f9992898;hpb=c2dca8dbd0ecb7a4f03087fdd748cf49464297f0 diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index 71cb1cf..6501b60 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -2561,6 +2561,7 @@ static int filter_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp, RETURN(lsm_size); if (*lsmp != NULL && lmm == NULL) { + OBD_FREE((*lsmp)->lsm_oinfo[0], sizeof(struct lov_oinfo)); OBD_FREE(*lsmp, lsm_size); *lsmp = NULL; RETURN(0); @@ -2570,8 +2571,12 @@ static int filter_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp, OBD_ALLOC(*lsmp, lsm_size); if (*lsmp == NULL) RETURN(-ENOMEM); - - loi_init((*lsmp)->lsm_oinfo); + OBD_ALLOC((*lsmp)->lsm_oinfo[0], sizeof(struct lov_oinfo)); + if ((*lsmp)->lsm_oinfo[0] == NULL) { + OBD_FREE(*lsmp, lsm_size); + RETURN(-ENOMEM); + } + loi_init((*lsmp)->lsm_oinfo[0]); } if (lmm != NULL) {