summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi2025-11-20 22:22:30 +0000
committerChristian Marangi2025-11-20 22:42:11 +0000
commit728ca2bc393629e8f2eaff4731f118a46018fc24 (patch)
treeab69bdeb9361f5452304c26ef31e4d84145ac30c
parente9ae6b19f023b525334f74a4f974be6e68e0d3e7 (diff)
downloadopenwrt-728ca2bc393629e8f2eaff4731f118a46018fc24.tar.gz
Revert "kernel: mtdsplit_h3c_vfs: return 0 for non-fatal errors"
This reverts commit 6fa1775348d5415129db12c05a993c8571c867c2. Skipping parser for subpartition will be handled now with -ENOENT. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-rw-r--r--target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_h3c_vfs.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_h3c_vfs.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_h3c_vfs.c
index 25993e762b..f264233dbd 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_h3c_vfs.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_h3c_vfs.c
@@ -98,11 +98,8 @@ static int mtdsplit_h3c_vfs_parse(struct mtd_info *mtd,
if (retlen != sizeof(format_flag))
return -EIO;
- if (format_flag != FORMAT_FLAG) {
- pr_info("mtdsplit_h3c_vfs: unexpected format flag %08x\n",
- format_flag);
- return 0;
- }
+ if (format_flag != FORMAT_FLAG)
+ return -EINVAL;
/* Check file entry */
err = mtd_read(mtd, FILE_ENTRY_OFFSET, sizeof(file_entry), &retlen,
@@ -113,14 +110,20 @@ static int mtdsplit_h3c_vfs_parse(struct mtd_info *mtd,
if (retlen != sizeof(file_entry))
return -EIO;
- if (file_entry.flags != FILE_ENTRY_FLAGS ||
- file_entry.parent_block != FILE_ENTRY_PARENT_BLOCK ||
- file_entry.parent_index != FILE_ENTRY_PARENT_INDEX ||
- file_entry.data_block != FILE_ENTRY_DATA_BLOCK ||
- strncmp(file_entry.name, FILE_ENTRY_NAME, sizeof(file_entry.name)) != 0) {
- pr_info("mtdsplit_h3c_vfs: unexpected file entry - OpenWrt probably not installed\n");
- return 0;
- }
+ if (file_entry.flags != FILE_ENTRY_FLAGS)
+ return -EINVAL;
+
+ if (file_entry.parent_block != FILE_ENTRY_PARENT_BLOCK)
+ return -EINVAL;
+
+ if (file_entry.parent_index != FILE_ENTRY_PARENT_INDEX)
+ return -EINVAL;
+
+ if (file_entry.data_block != FILE_ENTRY_DATA_BLOCK)
+ return -EINVAL;
+
+ if (strncmp(file_entry.name, FILE_ENTRY_NAME, sizeof(file_entry.name)) != 0)
+ return -EINVAL;
/* Find rootfs offset */
kernel_size = block_offset(file_entry.data_block +