Whamcloud - gitweb
LU-10877 lu: fix reference leak 70/31870/2
authorAlexey Lyashkov <c17817@cray.com>
Wed, 4 Apr 2018 09:28:11 +0000 (12:28 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Sat, 14 Apr 2018 12:14:50 +0000 (12:14 +0000)
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 <c17817@cray.com>
Change-Id: I6dbeeb4f70a2914b1606ad0c5586db431a6dcd2c
Reviewed-on: https://review.whamcloud.com/31870
Reviewed-by: Andrew Perepechko <c17827@cray.com>
Tested-by: Jenkins
Reviewed-by: Sergey Cheremencev <c17829@cray.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/obdclass/dt_object.c
lustre/obdclass/lu_object.c

index b0448cb..0662d07 100644 (file)
@@ -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);
index 694bab2..b390140 100644 (file)
@@ -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;
        }