2021-09-28 20:48:50

by Daeho Jeong

[permalink] [raw]
Subject: [PATCH] f2fs-tools: fall back to the original version check when clock_gettime is not supported

From: Daeho Jeong <[email protected]>

In lower versions than macOS 10.12, they don't support clock_gettime
function. It breaks the build, so we need to fall back to the original
kernel version check algorithm, in that case.

Signed-off-by: Daeho Jeong <[email protected]>
---
fsck/mount.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/fsck/mount.c b/fsck/mount.c
index 7c4c681..c928a15 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -975,6 +975,16 @@ int validate_super_block(struct f2fs_sb_info *sbi, enum SB_ADDR sb_addr)
MSG(0, "Info: MKFS version\n \"%s\"\n", c.init_version);
MSG(0, "Info: FSCK version\n from \"%s\"\n to \"%s\"\n",
c.sb_version, c.version);
+#if defined(__APPLE__)
+ if (!c.no_kernel_check &&
+ memcmp(c.sb_version, c.version, VERSION_NAME_LEN)) {
+ c.auto_fix = 0;
+ c.fix_on = 1;
+ memcpy(sbi->raw_super->version,
+ c.version, VERSION_NAME_LEN);
+ update_superblock(sbi->raw_super, SB_MASK(sb_addr));
+ }
+#else
if (!c.no_kernel_check) {
struct timespec t;
u32 prev_time, cur_time, time_diff;
@@ -1007,6 +1017,7 @@ int validate_super_block(struct f2fs_sb_info *sbi, enum SB_ADDR sb_addr)
update_superblock(sbi->raw_super, SB_MASK(sb_addr));
}
out:
+#endif
print_sb_state(sbi->raw_super);
return 0;
}
--
2.33.0.685.g46640cef36-goog


2021-09-28 21:01:50

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [PATCH] f2fs-tools: fall back to the original version check when clock_gettime is not supported

Merged to address android build breakage.

On 09/28, Daeho Jeong wrote:
> From: Daeho Jeong <[email protected]>
>
> In lower versions than macOS 10.12, they don't support clock_gettime
> function. It breaks the build, so we need to fall back to the original
> kernel version check algorithm, in that case.
>
> Signed-off-by: Daeho Jeong <[email protected]>
> ---
> fsck/mount.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/fsck/mount.c b/fsck/mount.c
> index 7c4c681..c928a15 100644
> --- a/fsck/mount.c
> +++ b/fsck/mount.c
> @@ -975,6 +975,16 @@ int validate_super_block(struct f2fs_sb_info *sbi, enum SB_ADDR sb_addr)
> MSG(0, "Info: MKFS version\n \"%s\"\n", c.init_version);
> MSG(0, "Info: FSCK version\n from \"%s\"\n to \"%s\"\n",
> c.sb_version, c.version);
> +#if defined(__APPLE__)
> + if (!c.no_kernel_check &&
> + memcmp(c.sb_version, c.version, VERSION_NAME_LEN)) {
> + c.auto_fix = 0;
> + c.fix_on = 1;
> + memcpy(sbi->raw_super->version,
> + c.version, VERSION_NAME_LEN);
> + update_superblock(sbi->raw_super, SB_MASK(sb_addr));
> + }
> +#else
> if (!c.no_kernel_check) {
> struct timespec t;
> u32 prev_time, cur_time, time_diff;
> @@ -1007,6 +1017,7 @@ int validate_super_block(struct f2fs_sb_info *sbi, enum SB_ADDR sb_addr)
> update_superblock(sbi->raw_super, SB_MASK(sb_addr));
> }
> out:
> +#endif
> print_sb_state(sbi->raw_super);
> return 0;
> }
> --
> 2.33.0.685.g46640cef36-goog

2021-10-13 15:25:13

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH] f2fs-tools: fall back to the original version check when clock_gettime is not supported

On 2021/9/29 4:46, Daeho Jeong wrote:
> From: Daeho Jeong <[email protected]>
>
> In lower versions than macOS 10.12, they don't support clock_gettime
> function. It breaks the build, so we need to fall back to the original
> kernel version check algorithm, in that case.
>
> Signed-off-by: Daeho Jeong <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

Thanks,