xfsprogs/xfsprogs-5.12.0-default-bigtime-inobtcnt-on.patch

56 lines
1.2 KiB
Diff
Raw Permalink Normal View History

2024-01-08 10:39:43 +08:00
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index c522cb4..4f16335 100644
2022-11-19 17:53:48 +08:00
--- a/mkfs/xfs_mkfs.c
2024-01-08 10:39:43 +08:00
+++ b/mkfs/xfs_mkfs.c
@@ -14,7 +14,9 @@
#include "libfrog/dahashselftest.h"
2022-11-19 17:53:48 +08:00
#include "proto.h"
#include <ini.h>
2024-01-08 10:39:43 +08:00
-
2022-11-19 17:53:48 +08:00
+#include <linux/version.h>
+#include <sys/utsname.h>
2024-01-08 10:39:43 +08:00
+
2022-11-19 17:53:48 +08:00
#define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog)))
#define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog)))
2024-01-08 10:39:43 +08:00
#define MEGABYTES(count, blog) ((uint64_t)(count) << (20 - (blog)))
@@ -4072,6 +4074,23 @@ cfgfile_parse(
cli->cfgfile);
}
+static unsigned int get_system_kver(void)
+{
+ const char *kver = getenv("KVER");
+ struct utsname utsname;
+ int a, b, c;
+
+ if (!kver) {
+ uname(&utsname);
+ kver = utsname.release;
+ }
+
+ if (sscanf(kver, "%d.%d.%d", &a, &b, &c) != 3)
+ return LINUX_VERSION_CODE;
+
+ return KERNEL_VERSION(a,b,c);
+}
+
int
main(
int argc,
2024-01-08 10:39:43 +08:00
@@ -4150,7 +4169,15 @@ main(
};
struct list_head buffer_list;
+ unsigned int kver;
int error;
2022-11-19 17:53:48 +08:00
+
+ /* turn bigtime & inobtcnt back off if running under older kernels */
+ kver = get_system_kver();
+ if (kver < KERNEL_VERSION(5,10,0)) {
+ dft.sb_feat.inobtcnt = false;
+ dft.sb_feat.bigtime = false;
+ }
2022-11-19 17:53:48 +08:00
platform_uuid_generate(&cli.uuid);
progname = basename(argv[0]);