On Thu, Jan 16, 2020 at 11:56 PM Robert Byrnes <byrnes@xxxxxxxxxxxxxxx> wrote: > > The fuse module invalidates the atime after any operation (like readlink) > that might change it, using this function (in fs/fuse/dir.c) ... > > /** > * Mark the attributes as stale due to an atime change. Avoid the > invalidate if > * atime is not used. > */ > void fuse_invalidate_atime(struct inode *inode) > { > if (!IS_RDONLY(inode)) > WRITE_ONCE(get_fuse_inode(inode)->inval_atime, 1); > } > > Shouldn't that be IS_NOATIME instead of IS_RDONLY? It would work if we also added an INIT flag (e.g. FUSE_NOATIME) which would set SB_NOATIME on the fuse superblock. The current per-mount "noatime" option doesn't work exactly because it's per-mount and we cannot determine if all mounts of a given superblock have this flag set. Thanks, Miklos