Details
-
Bug
-
Resolution: Not a Bug
-
Minor
-
Lustre 2.7.0
-
None
-
3
-
9223372036854775807
Description
Sub stripe object will be holded by master object until the master object is freed. (lod_object_free()->lod_object_free_striping()
void lod_object_free_striping(const struct lu_env *env, struct lod_object *lo) { int i; if (lo->ldo_dir_stripe != NULL) { OBD_FREE_PTR(lo->ldo_dir_stripe); lo->ldo_dir_stripe = NULL; } if (lo->ldo_stripe) { LASSERT(lo->ldo_stripes_allocated > 0); for (i = 0; i < lo->ldo_stripenr; i++) { if (lo->ldo_stripe[i]) lu_object_put(env, &lo->ldo_stripe[i]->do_lu); } i = sizeof(struct dt_object *) * lo->ldo_stripes_allocated; OBD_FREE(lo->ldo_stripe, i); lo->ldo_stripe = NULL; lo->ldo_stripes_allocated = 0; } ............
So the master object (of striped directory) should be freed immediately once the ref count reach to 0.