From: Swapnil Pimpale Date: Fri, 10 Jan 2014 12:15:27 +0000 (+0530) Subject: LU-3868 osc: Update inode timestamp for lockless IO as well X-Git-Tag: 2.5.58~7 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=77f803507fb34834007c4d34435156a230087664;p=fs%2Flustre-release.git LU-3868 osc: Update inode timestamp for lockless IO as well Removed the checks for oi_lockless from osc_io_read_start() and osc_io_write_start(). This patch also removes the unnecessary call to cl_object_attr_get() in osc_io_write_start() before calling cl_object_attr_set() Signed-off-by: Swapnil Pimpale Change-Id: Ic96694e84444cd19fafe0af72848250e5b1a3d14 Reviewed-on: http://review.whamcloud.com/8797 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: Andreas Dilger --- diff --git a/lustre/osc/osc_io.c b/lustre/osc/osc_io.c index 5778a4b..934511e 100644 --- a/lustre/osc/osc_io.c +++ b/lustre/osc/osc_io.c @@ -564,13 +564,12 @@ static void osc_io_setattr_end(const struct lu_env *env, static int osc_io_read_start(const struct lu_env *env, const struct cl_io_slice *slice) { - struct osc_io *oio = cl2osc_io(env, slice); struct cl_object *obj = slice->cis_obj; struct cl_attr *attr = &osc_env_info(env)->oti_attr; int rc = 0; ENTRY; - if (oio->oi_lockless == 0 && !slice->cis_io->ci_noatime) { + if (!slice->cis_io->ci_noatime) { cl_object_attr_lock(obj); attr->cat_atime = LTIME_S(CFS_CURRENT_TIME); rc = cl_object_attr_set(env, obj, attr, CAT_ATIME); @@ -583,25 +582,18 @@ static int osc_io_read_start(const struct lu_env *env, static int osc_io_write_start(const struct lu_env *env, const struct cl_io_slice *slice) { - struct osc_io *oio = cl2osc_io(env, slice); - struct cl_object *obj = slice->cis_obj; - struct cl_attr *attr = &osc_env_info(env)->oti_attr; - int result = 0; - ENTRY; + struct cl_object *obj = slice->cis_obj; + struct cl_attr *attr = &osc_env_info(env)->oti_attr; + int rc = 0; + ENTRY; - if (oio->oi_lockless == 0) { - OBD_FAIL_TIMEOUT(OBD_FAIL_OSC_DELAY_SETTIME, 1); - cl_object_attr_lock(obj); - result = cl_object_attr_get(env, obj, attr); - if (result == 0) { - attr->cat_mtime = attr->cat_ctime = - LTIME_S(CFS_CURRENT_TIME); - result = cl_object_attr_set(env, obj, attr, - CAT_MTIME | CAT_CTIME); - } - cl_object_attr_unlock(obj); - } - RETURN(result); + OBD_FAIL_TIMEOUT(OBD_FAIL_OSC_DELAY_SETTIME, 1); + cl_object_attr_lock(obj); + attr->cat_mtime = attr->cat_ctime = LTIME_S(CFS_CURRENT_TIME); + rc = cl_object_attr_set(env, obj, attr, CAT_MTIME | CAT_CTIME); + cl_object_attr_unlock(obj); + + RETURN(rc); } static int osc_fsync_ost(const struct lu_env *env, struct osc_object *obj,