Original error message:
LustreError: 25302:0:(namei.c:256:ll_mdc_blocking_ast())
ns: lustre-MDT0000-mdc-
ffff81021762a000 lock:
The issue cause by commit
ef8bd11416bae8c03a65682f3a10a4da39922b45.
fid_res_name_eq() use wrong way to compare fid & res_name.
Signed-off-by: yang sheng <ys@whamcloud.com>
Change-Id: Iacba148b6c3ba7fa775d2b9a4a58bdbf67434d7c
Reviewed-on: http://review.whamcloud.com/3522
Tested-by: Hudson
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
*/
int fid_res_name_eq(const struct lu_fid *f, const struct ldlm_res_id *name)
{
- int ret;
-
- ret = name->name[LUSTRE_RES_ID_SEQ_OFF] == fid_seq(f) &&
- name->name[LUSTRE_RES_ID_VER_OID_OFF] == fid_oid(f);
- if (!fid_is_igif(f))
- ret &= name->name[LUSTRE_RES_ID_VER_OID_OFF] == fid_ver(f);
- return ret;
+ return name->name[LUSTRE_RES_ID_SEQ_OFF] == fid_seq(f) &&
+ name->name[LUSTRE_RES_ID_VER_OID_OFF] ==
+ (fid_oid(f) | (fid_is_igif(f) ? 0 : (__u64)fid_ver(f)<<32));
}
EXPORT_SYMBOL(fid_res_name_eq);