@ -42,6 +42,11 @@ struct selected_dev {
static struct selected_dev ubi_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 )
static void ubi_dump_vol_info ( const struct ubi_volume * vol )
{
{
ubi_msg ( " volume information dump: " ) ;
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 )
if ( argc < 3 )
return cmd_usage ( cmdtp ) ;
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... */
/* todo: get dev number for NAND... */
ubi_dev . nr = 0 ;
ubi_dev . nr = 0 ;