|
|
@@ -17,10 +17,16 @@
|
|
|
#define EROFS_SUPER_MAGIC_V1 0xE0F5E1E2
|
|
|
#define EROFS_SUPER_OFFSET 1024
|
|
|
|
|
|
+/*
|
|
|
+ * Any bits that aren't in EROFS_ALL_REQUIREMENTS should be
|
|
|
+ * incompatible with this kernel version.
|
|
|
+ */
|
|
|
+#define EROFS_ALL_REQUIREMENTS 0
|
|
|
+
|
|
|
struct erofs_super_block {
|
|
|
/* 0 */__le32 magic; /* in the little endian */
|
|
|
/* 4 */__le32 checksum; /* crc32c(super_block) */
|
|
|
-/* 8 */__le32 features;
|
|
|
+/* 8 */__le32 features; /* (aka. feature_compat) */
|
|
|
/* 12 */__u8 blkszbits; /* support block_size == PAGE_SIZE only */
|
|
|
/* 13 */__u8 reserved;
|
|
|
|
|
|
@@ -34,9 +40,10 @@ struct erofs_super_block {
|
|
|
/* 44 */__le32 xattr_blkaddr;
|
|
|
/* 48 */__u8 uuid[16]; /* 128-bit uuid for volume */
|
|
|
/* 64 */__u8 volume_name[16]; /* volume name */
|
|
|
+/* 80 */__le32 requirements; /* (aka. feature_incompat) */
|
|
|
|
|
|
-/* 80 */__u8 reserved2[48]; /* 128 bytes */
|
|
|
-} __packed;
|
|
|
+/* 84 */__u8 reserved2[44];
|
|
|
+} __packed; /* 128 bytes */
|
|
|
|
|
|
#define __EROFS_BIT(_prefix, _cur, _pre) enum { \
|
|
|
_prefix ## _cur ## _BIT = _prefix ## _pre ## _BIT + \
|