mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 08:58:07 +00:00
erofs: get rid of check_layout_compatibility()
Simple enough to just open-code it. Signed-off-by: Hongzhen Luo <hongzhen@linux.alibaba.com> Reviewed-by: Sandeep Dhavale <dhavale@google.com> Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/20240806112208.150323-1-hongzhen@linux.alibaba.com Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
This commit is contained in:
parent
5b5c96c63d
commit
2c534624ae
1 changed files with 6 additions and 20 deletions
|
@ -108,22 +108,6 @@ static void erofs_free_inode(struct inode *inode)
|
|||
kmem_cache_free(erofs_inode_cachep, vi);
|
||||
}
|
||||
|
||||
static bool check_layout_compatibility(struct super_block *sb,
|
||||
struct erofs_super_block *dsb)
|
||||
{
|
||||
const unsigned int feature = le32_to_cpu(dsb->feature_incompat);
|
||||
|
||||
EROFS_SB(sb)->feature_incompat = feature;
|
||||
|
||||
/* check if current kernel meets all mandatory requirements */
|
||||
if (feature & (~EROFS_ALL_FEATURE_INCOMPAT)) {
|
||||
erofs_err(sb, "unidentified incompatible feature %x, please upgrade kernel",
|
||||
feature & ~EROFS_ALL_FEATURE_INCOMPAT);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* read variable-sized metadata, offset will be aligned by 4-byte */
|
||||
void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf,
|
||||
erofs_off_t *offset, int *lengthp)
|
||||
|
@ -279,7 +263,7 @@ static int erofs_scan_devices(struct super_block *sb,
|
|||
|
||||
static int erofs_read_superblock(struct super_block *sb)
|
||||
{
|
||||
struct erofs_sb_info *sbi;
|
||||
struct erofs_sb_info *sbi = EROFS_SB(sb);
|
||||
struct erofs_buf buf = __EROFS_BUF_INITIALIZER;
|
||||
struct erofs_super_block *dsb;
|
||||
void *data;
|
||||
|
@ -291,9 +275,7 @@ static int erofs_read_superblock(struct super_block *sb)
|
|||
return PTR_ERR(data);
|
||||
}
|
||||
|
||||
sbi = EROFS_SB(sb);
|
||||
dsb = (struct erofs_super_block *)(data + EROFS_SUPER_OFFSET);
|
||||
|
||||
ret = -EINVAL;
|
||||
if (le32_to_cpu(dsb->magic) != EROFS_SUPER_MAGIC_V1) {
|
||||
erofs_err(sb, "cannot find valid erofs superblock");
|
||||
|
@ -318,8 +300,12 @@ static int erofs_read_superblock(struct super_block *sb)
|
|||
}
|
||||
|
||||
ret = -EINVAL;
|
||||
if (!check_layout_compatibility(sb, dsb))
|
||||
sbi->feature_incompat = le32_to_cpu(dsb->feature_incompat);
|
||||
if (sbi->feature_incompat & ~EROFS_ALL_FEATURE_INCOMPAT) {
|
||||
erofs_err(sb, "unidentified incompatible feature %x, please upgrade kernel",
|
||||
sbi->feature_incompat & ~EROFS_ALL_FEATURE_INCOMPAT);
|
||||
goto out;
|
||||
}
|
||||
|
||||
sbi->sb_size = 128 + dsb->sb_extslots * EROFS_SB_EXTSLOT_SIZE;
|
||||
if (sbi->sb_size > PAGE_SIZE - EROFS_SUPER_OFFSET) {
|
||||
|
|
Loading…
Reference in a new issue