lustre/clio: honor O_NOATIME
[deliverable/linux.git] / drivers / staging / lustre / lustre / osc / osc_io.c
index 777ae24bbfff465aa91c2e5169da20c662300e6a..5f3c545418d11cd765068ae6f3d5409e82618c5f 100644 (file)
@@ -512,19 +512,15 @@ static int osc_io_read_start(const struct lu_env *env,
        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;
+       int rc = 0;
 
-       if (oio->oi_lockless == 0) {
+       if (oio->oi_lockless == 0 && !slice->cis_io->ci_noatime) {
                cl_object_attr_lock(obj);
-               result = cl_object_attr_get(env, obj, attr);
-               if (result == 0) {
-                       attr->cat_atime = LTIME_S(CURRENT_TIME);
-                       result = cl_object_attr_set(env, obj, attr,
-                                                   CAT_ATIME);
-               }
+               attr->cat_atime = LTIME_S(CURRENT_TIME);
+               rc = cl_object_attr_set(env, obj, attr, CAT_ATIME);
                cl_object_attr_unlock(obj);
        }
-       return result;
+       return rc;
 }
 
 static int osc_io_write_start(const struct lu_env *env,
This page took 0.038161 seconds and 5 git commands to generate.