ceph: disable updating the atime since cephfs won't maintain it
authorXiubo Li <xiubli@redhat.com>
Wed, 20 Apr 2022 05:13:02 +0000 (13:13 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2022 18:45:14 +0000 (20:45 +0200)
Since CephFS makes no attempt to maintain atime, we shouldn't
try to update it in mmap and generic read cases and ignore updating
it in direct and sync read cases.

And even we update it in mmap and generic read cases we will drop
it and won't sync it to MDS. And we are seeing the atime will be
updated and then dropped to the floor again and again.

URL: https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/VSJM7T4CS5TDRFF6XFPIYMHP75K73PZ6/
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Acked-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/addr.c
fs/ceph/super.c

index b6edcf89a429f6107d4ee015a3c999482c74b0fd..69578cc3749d8f18809ed9f72f5a14fdf170221e 100644 (file)
@@ -1777,7 +1777,6 @@ int ceph_mmap(struct file *file, struct vm_area_struct *vma)
 
        if (!mapping->a_ops->readpage)
                return -ENOEXEC;
-       file_accessed(file);
        vma->vm_ops = &ceph_vmops;
        return 0;
 }
index e6987d295079f3a882dea3715daad55f985dec55..b73b4f75462c3442d2d56a348d7ded4db26a11bb 100644 (file)
@@ -1119,6 +1119,7 @@ static int ceph_set_super(struct super_block *s, struct fs_context *fc)
        s->s_time_gran = 1;
        s->s_time_min = 0;
        s->s_time_max = U32_MAX;
+       s->s_flags |= SB_NODIRATIME | SB_NOATIME;
 
        ret = set_anon_super_fc(s, fc);
        if (ret != 0)