Do not do attr_get for new OSP object, to save
RPC between MDTs.
Signed-off-by: wang di <di.wang@intel.com>
Change-Id: Iecc0fde64f076b28c752294c8b403693fe26e43a
Reviewed-on: http://review.whamcloud.com/16102
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
po->opo_obj.do_ops = &osp_md_obj_ops;
po->opo_obj.do_body_ops = &osp_md_body_ops;
- rc = po->opo_obj.do_ops->do_attr_get(env, lu2dt_obj(o), la);
- if (rc == 0)
- o->lo_header->loh_attr |=
- LOHA_EXISTS | (la->la_mode & S_IFMT);
- if (rc == -ENOENT) {
+ if (conf != NULL && conf->loc_flags & LOC_F_NEW) {
po->opo_non_exist = 1;
- rc = 0;
+ } else {
+ rc = po->opo_obj.do_ops->do_attr_get(env, lu2dt_obj(o),
+ la);
+ if (rc == 0)
+ o->lo_header->loh_attr |=
+ LOHA_EXISTS | (la->la_mode & S_IFMT);
+ if (rc == -ENOENT) {
+ po->opo_non_exist = 1;
+ rc = 0;
+ }
}
init_rwsem(&po->opo_sem);
}