Commit 426a9308 authored by Gao Xiang's avatar Gao Xiang Committed by Greg Kroah-Hartman

erofs: use feature_incompat rather than requirements

As Christoph said [1], "This is only cosmetic, why
not stick to feature_compat and feature_incompat?"

In my thought, requirements means "incompatible"
instead of "feature" though.

[1] https://lore.kernel.org/r/20190902125109.GA9826@infradead.org/Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
Link: https://lore.kernel.org/r/20190904020912.63925-7-gaoxiang25@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c39747f7
...@@ -129,7 +129,8 @@ static int lz4_decompress(struct z_erofs_decompress_req *rq, u8 *out) ...@@ -129,7 +129,8 @@ static int lz4_decompress(struct z_erofs_decompress_req *rq, u8 *out)
support_0padding = false; support_0padding = false;
/* decompression inplace is only safe when 0padding is enabled */ /* decompression inplace is only safe when 0padding is enabled */
if (EROFS_SB(rq->sb)->requirements & EROFS_REQUIREMENT_LZ4_0PADDING) { if (EROFS_SB(rq->sb)->feature_incompat &
EROFS_FEATURE_INCOMPAT_LZ4_0PADDING) {
support_0padding = true; support_0padding = true;
while (!src[inputmargin & ~PAGE_MASK]) while (!src[inputmargin & ~PAGE_MASK])
......
...@@ -11,17 +11,17 @@ ...@@ -11,17 +11,17 @@
#define EROFS_SUPER_OFFSET 1024 #define EROFS_SUPER_OFFSET 1024
/* /*
* Any bits that aren't in EROFS_ALL_REQUIREMENTS should be * Any bits that aren't in EROFS_ALL_FEATURE_INCOMPAT should
* incompatible with this kernel version. * be incompatible with this kernel version.
*/ */
#define EROFS_REQUIREMENT_LZ4_0PADDING 0x00000001 #define EROFS_FEATURE_INCOMPAT_LZ4_0PADDING 0x00000001
#define EROFS_ALL_REQUIREMENTS EROFS_REQUIREMENT_LZ4_0PADDING #define EROFS_ALL_FEATURE_INCOMPAT EROFS_FEATURE_INCOMPAT_LZ4_0PADDING
/* 128-byte erofs on-disk super block */ /* 128-byte erofs on-disk super block */
struct erofs_super_block { struct erofs_super_block {
__le32 magic; /* file system magic number */ __le32 magic; /* file system magic number */
__le32 checksum; /* crc32c(super_block) */ __le32 checksum; /* crc32c(super_block) */
__le32 features; /* (aka. feature_compat) */ __le32 feature_compat;
__u8 blkszbits; /* support block_size == PAGE_SIZE only */ __u8 blkszbits; /* support block_size == PAGE_SIZE only */
__u8 reserved; __u8 reserved;
...@@ -35,7 +35,7 @@ struct erofs_super_block { ...@@ -35,7 +35,7 @@ struct erofs_super_block {
__le32 xattr_blkaddr; /* start block address of shared xattr area */ __le32 xattr_blkaddr; /* start block address of shared xattr area */
__u8 uuid[16]; /* 128-bit uuid for volume */ __u8 uuid[16]; /* 128-bit uuid for volume */
__u8 volume_name[16]; /* volume name */ __u8 volume_name[16]; /* volume name */
__le32 requirements; /* (aka. feature_incompat) */ __le32 feature_incompat;
__u8 reserved2[44]; __u8 reserved2[44];
}; };
......
...@@ -96,7 +96,7 @@ struct erofs_sb_info { ...@@ -96,7 +96,7 @@ struct erofs_sb_info {
u8 uuid[16]; /* 128-bit uuid for volume */ u8 uuid[16]; /* 128-bit uuid for volume */
u8 volume_name[16]; /* volume name */ u8 volume_name[16]; /* volume name */
u32 requirements; u32 feature_incompat;
unsigned int mount_opt; unsigned int mount_opt;
......
...@@ -67,14 +67,14 @@ static void free_inode(struct inode *inode) ...@@ -67,14 +67,14 @@ static void free_inode(struct inode *inode)
static bool check_layout_compatibility(struct super_block *sb, static bool check_layout_compatibility(struct super_block *sb,
struct erofs_super_block *layout) struct erofs_super_block *layout)
{ {
const unsigned int requirements = le32_to_cpu(layout->requirements); const unsigned int feature = le32_to_cpu(layout->feature_incompat);
EROFS_SB(sb)->requirements = requirements; EROFS_SB(sb)->feature_incompat = feature;
/* check if current kernel meets all mandatory requirements */ /* check if current kernel meets all mandatory requirements */
if (requirements & (~EROFS_ALL_REQUIREMENTS)) { if (feature & (~EROFS_ALL_FEATURE_INCOMPAT)) {
errln("unidentified requirements %x, please upgrade kernel version", errln("unidentified incompatible feature %x, please upgrade kernel version",
requirements & ~EROFS_ALL_REQUIREMENTS); feature & ~EROFS_ALL_FEATURE_INCOMPAT);
return false; return false;
} }
return true; return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment