diff options
Diffstat (limited to 'c_src/libbcachefs.h')
-rw-r--r-- | c_src/libbcachefs.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/c_src/libbcachefs.h b/c_src/libbcachefs.h index 619bbbd5..93a86db7 100644 --- a/c_src/libbcachefs.h +++ b/c_src/libbcachefs.h @@ -45,14 +45,18 @@ struct format_opts { char *source; }; -static inline struct format_opts format_opts_default() +static inline unsigned bcachefs_kernel_version(void) { - unsigned version = !access( "/sys/module/bcachefs/parameters/version", R_OK) + return !access("/sys/module/bcachefs/parameters/version", R_OK) ? read_file_u64(AT_FDCWD, "/sys/module/bcachefs/parameters/version") - : bcachefs_metadata_version_current; + : 0; +} +static inline struct format_opts format_opts_default() +{ return (struct format_opts) { - .version = version, + .version = bcachefs_kernel_version() ?: + bcachefs_metadata_version_current, .superblock_size = SUPERBLOCK_SIZE_DEFAULT, }; } |