Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.9.0, Lustre 2.10.0, Lustre 2.11.0
-
None
-
any. Test from
LU-9699
-
3
-
9223372036854775807
Description
commit f6d6a552398eb1e65857d9bf1afaaf98c8dc1a79 have rewrite a dt_locate_at function to different device tree handling, and this change introduce an object reference leak.
+ struct lu_object *lo, *n; + ENTRY; + + lo = lu_object_find_at(env, top_dev, fid, NULL); + if (IS_ERR(lo)) + return (void *)lo; + + LASSERT(lo != NULL); + + cfs_list_for_each_entry(n, &lo->lo_header->loh_layers, lo_linkage) { + if (n->lo_dev == &dev->dd_lu_dev) + return container_of0(n, struct dt_object, do_lu); + } + return ERR_PTR(-ENOENT);
if some object not in expected tree we have return an ENOENT without an object reference release. It will cause a panic on unmount.
Attachments
Issue Links
- is related to
-
LU-1301 MGS over OSD
-
- Resolved
-
Landed for 2.12