osd_attr_set() has [acm]time cached in the objects. so if the caller
wants to set them to the same value, there is no point to call very
expensive SA update procedure.
Change-Id: I4e06306198496170f5d9c486a8d245c0978c0f79
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: http://review.whamcloud.com/19088
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
if (!S_ISREG(dt->do_lu.lo_header->loh_attr))
valid &= ~(LA_SIZE | LA_BLOCKS);
+ if (valid & LA_CTIME && la->la_ctime == obj->oo_attr.la_ctime)
+ valid &= ~LA_CTIME;
+
+ if (valid & LA_MTIME && la->la_mtime == obj->oo_attr.la_mtime)
+ valid &= ~LA_MTIME;
+
+ if (valid & LA_ATIME && la->la_atime == obj->oo_attr.la_atime)
+ valid &= ~LA_ATIME;
+
if (valid == 0)
GOTO(out, rc = 0);