In mdt_punch_hdl() lu_object_attr() may be taken for
non-existent object with LBUG() as result.
Take lu_object_attr() after mdt_object_exists()check.
Test-Parameters: mdssizegb=20 testlist=sanity-dom,dom-performance
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: If1181caa94b28cf1f251f57fa6f7102dc40c329d
Reviewed-on: https://review.whamcloud.com/30057
Tested-by: Jenkins
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
if (IS_ERR(mo))
GOTO(out_unlock, rc = PTR_ERR(mo));
+ if (!mdt_object_exists(mo))
+ GOTO(out_put, rc = -ENOENT);
+
/* Shouldn't happen on dirs */
if (S_ISDIR(lu_object_attr(&mo->mot_obj))) {
rc = -EPERM;
}
mdt_dom_write_lock(mo);
- if (!mdt_object_exists(mo))
- GOTO(out_put, rc = -ENOENT);
-
dob = mdt_obj2dt(mo);
la_from_obdo(la, oa, OBD_MD_FLMTIME | OBD_MD_FLATIME | OBD_MD_FLCTIME);