diff options
Diffstat (limited to 'common/cmd_ubi.c')
| -rw-r--r-- | common/cmd_ubi.c | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/common/cmd_ubi.c b/common/cmd_ubi.c index 7692ac771..b486ca8fe 100644 --- a/common/cmd_ubi.c +++ b/common/cmd_ubi.c @@ -42,6 +42,11 @@ struct selected_dev {  static struct selected_dev ubi_dev; +#ifdef CONFIG_CMD_UBIFS +int ubifs_is_mounted(void); +void cmd_ubifs_umount(void); +#endif +  static void ubi_dump_vol_info(const struct ubi_volume *vol)  {  	ubi_msg("volume information dump:"); @@ -472,6 +477,16 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])  		if (argc < 3)  			return cmd_usage(cmdtp); +#ifdef CONFIG_CMD_UBIFS +		/* +		 * Automatically unmount UBIFS partition when user +		 * changes the UBI device. Otherwise the following +		 * UBIFS commands will crash. +		 */ +		if (ubifs_is_mounted()) +			cmd_ubifs_umount(); +#endif +  		/* todo: get dev number for NAND... */  		ubi_dev.nr = 0; |