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.
Alex, should this ticket be reopened to track the issues you described? Otherwise they will be lost.