[PATCH 1/1] spl: fix ext4fs_mount return code handling

From: Thomas Schaefer thomas.schaefer@kontron.com
- Despite other ext4 filesystem functions, ext4fs_mount returns 0 in case of error. - This leads to u-boot crash in case that an SD card with valid partition table but without ext4 filesystem created in a partition is found on SD card. - Fix this by returning a proper error code of '-1' from spl_load_image_ext function in case of ext4fs_mount error.
Signed-off-by: Thomas Schaefer thomas.schaefer@kontron.com [hthiery: slightly reword the commit message] Signed-off-by: Heiko Thiery heiko.thiery@gmail.com --- common/spl/spl_ext.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c index 3898041d10..c8d137ed98 100644 --- a/common/spl/spl_ext.c +++ b/common/spl/spl_ext.c @@ -32,6 +32,7 @@ int spl_load_image_ext(struct spl_image_info *spl_image, #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT printf("%s: ext4fs mount err - %d\n", __func__, err); #endif + err = -1; /* ext4fs_mount returns 0 in case of error! */ goto end; }

On Tue, Jun 16, 2020 at 01:59:03PM +0200, Heiko Thiery wrote:
From: Thomas Schaefer thomas.schaefer@kontron.com
- Despite other ext4 filesystem functions, ext4fs_mount returns 0 in case of error.
- This leads to u-boot crash in case that an SD card with valid partition table but without ext4 filesystem created in a partition is found on SD card.
- Fix this by returning a proper error code of '-1' from spl_load_image_ext function in case of ext4fs_mount error.
Signed-off-by: Thomas Schaefer thomas.schaefer@kontron.com [hthiery: slightly reword the commit message] Signed-off-by: Heiko Thiery heiko.thiery@gmail.com
common/spl/spl_ext.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c index 3898041d10..c8d137ed98 100644 --- a/common/spl/spl_ext.c +++ b/common/spl/spl_ext.c @@ -32,6 +32,7 @@ int spl_load_image_ext(struct spl_image_info *spl_image, #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT printf("%s: ext4fs mount err - %d\n", __func__, err); #endif
goto end; }err = -1; /* ext4fs_mount returns 0 in case of error! */
Looking over the code, we should return -1 directly here, goto end isn't going to provide more useful information as we don't have a "real" error code to tell the user. With that change please add:
Reviewed-by: Tom Rini trini@konsulko.com
and post v2, thanks!
participants (2)
-
Heiko Thiery
-
Tom Rini