aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaeho Jeong <daehojeong@google.com>2021-09-28 13:46:58 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2021-09-28 13:57:27 -0700
commit99bc49736baa5e90f4e2cb31caf38e33d6cd055a (patch)
treeba7b9a91b26ee6697e6ebc2b7ebe431e328cc246
parent1603a3d1de98031b4c2d020999d50e7a34b731ad (diff)
downloadf2fs-tools-99bc49736baa5e90f4e2cb31caf38e33d6cd055a.tar.gz
f2fs-tools: fall back to the original version check when clock_gettime is not supported
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 <daehojeong@google.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fsck/mount.c11
1 files changed, 11 insertions, 0 deletions
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;
}