Re: [PATCH v2 2/3] hfs: correct superblock flags
From: Viacheslav Dubeyko
Date: Tue May 27 2025 - 18:36:30 EST
On Mon, 2025-05-19 at 10:52 -0600, Yangtao Li wrote:
> We don't support atime updates of any kind,
> because hfs actually does not have atime.
>
> dirCrDat: LongInt; {date and time of creation}
> dirMdDat: LongInt; {date and time of last modification}
> dirBkDat: LongInt; {date and time of last backup}
>
> filCrDat: LongInt; {date and time of creation}
> filMdDat: LongInt; {date and time of last modification}
> filBkDat: LongInt; {date and time of last backup}
>
> W/O patch(xfstest generic/003):
>
> +ERROR: access time has changed for file1 after remount
> +ERROR: access time has changed after modifying file1
> +ERROR: change time has not been updated after changing file1
> +ERROR: access time has changed for file in read-only filesystem
>
> W/ patch(xfstest generic/003):
>
> +ERROR: access time has not been updated after accessing file1 first
> time
> +ERROR: access time has not been updated after accessing file2
> +ERROR: access time has changed after modifying file1
> +ERROR: change time has not been updated after changing file1
> +ERROR: access time has not been updated after accessing file3
> second time
> +ERROR: access time has not been updated after accessing file3 third
> time
>
I am slightly confused by comment. Does it mean that the fix introduces
more errors? It looks like we need to have more clear explanation of
the fix here.
> Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
> ---
> fs/hfs/super.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/hfs/super.c b/fs/hfs/super.c
> index fe09c2093a93..9fab84b157b4 100644
> --- a/fs/hfs/super.c
> +++ b/fs/hfs/super.c
> @@ -331,7 +331,7 @@ static int hfs_fill_super(struct super_block *sb,
> struct fs_context *fc)
> sbi->sb = sb;
> sb->s_op = &hfs_super_operations;
> sb->s_xattr = hfs_xattr_handlers;
> - sb->s_flags |= SB_NODIRATIME;
> + sb->s_flags |= SB_NOATIME;
I believe we need to have two flags here:
s->s_flags |= SB_NODIRATIME | SB_NOATIME;
Thanks,
Slava.
> mutex_init(&sbi->bitmap_lock);
>
> res = hfs_mdb_get(sb);