cmd: ubifs: Move ubifs_initialized checking into cmd_ubifs_umount()

cmd_ubifs_umount() function would be called directly instead of involving
whole command machinery in generic firmware loader, so checking on
ubifs_initialized status need to be done in cmd_ubifs_umount() without
breaking original functionality design.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
[trini: Fix conflicting type error in cmd/ubi.c]
Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Tien Fong Chee 2018-07-06 16:25:12 +08:00 committed by Tom Rini
parent bbef20d479
commit 10c2044062
3 changed files with 11 additions and 11 deletions

View File

@ -47,8 +47,7 @@ struct selected_dev {
static struct selected_dev ubi_dev;
#ifdef CONFIG_CMD_UBIFS
int ubifs_is_mounted(void);
void cmd_ubifs_umount(void);
#include <ubifs_uboot.h>
#endif
static void display_volume_info(struct ubi_device *ubi)

View File

@ -50,11 +50,18 @@ int ubifs_is_mounted(void)
return ubifs_mounted;
}
void cmd_ubifs_umount(void)
int cmd_ubifs_umount(void)
{
if (ubifs_initialized == 0) {
printf("No UBIFS volume mounted!\n");
return -1;
}
uboot_ubifs_umount();
ubifs_mounted = 0;
ubifs_initialized = 0;
return 0;
}
static int do_ubifs_umount(cmd_tbl_t *cmdtp, int flag, int argc,
@ -63,14 +70,7 @@ static int do_ubifs_umount(cmd_tbl_t *cmdtp, int flag, int argc,
if (argc != 1)
return CMD_RET_USAGE;
if (ubifs_initialized == 0) {
printf("No UBIFS volume mounted!\n");
return -1;
}
cmd_ubifs_umount();
return 0;
return cmd_ubifs_umount();
}
static int do_ubifs_ls(cmd_tbl_t *cmdtp, int flag, int argc,

View File

@ -75,5 +75,6 @@ extern int ubi_volume_write(char *volume, void *buf, size_t size);
extern int ubi_volume_read(char *volume, char *buf, size_t size);
extern struct ubi_device *ubi_devices[];
int cmd_ubifs_umount(void);
#endif