From: Alexey Lyashkov Date: Wed, 4 Apr 2018 09:28:11 +0000 (+0300) Subject: LU-10877 lu: fix reference leak X-Git-Tag: 2.11.51~22 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=fd669eba19210edd3a011d6862fda96383453cc3 LU-10877 lu: fix reference leak reference leak fix in dt_locate_at introduced in f6d6a552398eb1e65857d9bf1afaaf98c8dc1a79. Use a top level object in debug in lu_object_put to match with lu_object_get. Signed-off-by: Alexey Lyashkov Change-Id: I6dbeeb4f70a2914b1606ad0c5586db431a6dcd2c Reviewed-on: https://review.whamcloud.com/31870 Reviewed-by: Andrew Perepechko Tested-by: Jenkins Reviewed-by: Sergey Cheremencev Reviewed-by: Alex Zhuravlev Reviewed-by: Mike Pershin Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/obdclass/dt_object.c b/lustre/obdclass/dt_object.c index b0448cb..0662d07 100644 --- a/lustre/obdclass/dt_object.c +++ b/lustre/obdclass/dt_object.c @@ -253,6 +253,7 @@ struct dt_object *dt_locate_at(const struct lu_env *env, return container_of0(n, struct dt_object, do_lu); } + lu_object_put(env, lo); return ERR_PTR(-ENOENT); } EXPORT_SYMBOL(dt_locate_at); diff --git a/lustre/obdclass/lu_object.c b/lustre/obdclass/lu_object.c index 694bab2..b390140 100644 --- a/lustre/obdclass/lu_object.c +++ b/lustre/obdclass/lu_object.c @@ -153,9 +153,9 @@ void lu_object_put(const struct lu_env *env, struct lu_object *o) list_add_tail(&top->loh_lru, &bkt->lsb_lru); bkt->lsb_lru_len++; percpu_counter_inc(&site->ls_lru_len_counter); - CDEBUG(D_INODE, "Add %p to site lru. hash: %p, bkt: %p, " - "lru_len: %ld\n", - o, site->ls_obj_hash, bkt, bkt->lsb_lru_len); + CDEBUG(D_INODE, "Add %p/%p to site lru. hash: %p, bkt: %p, " + "lru_len: %ld\n", orig, top, + site->ls_obj_hash, bkt, bkt->lsb_lru_len); cfs_hash_bd_unlock(site->ls_obj_hash, &bd, 1); return; }