diff options
Diffstat (limited to 'ubifs-utils/libubifs/super.c')
| -rw-r--r-- | ubifs-utils/libubifs/super.c | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/ubifs-utils/libubifs/super.c b/ubifs-utils/libubifs/super.c index 9fa366f..155489d 100644 --- a/ubifs-utils/libubifs/super.c +++ b/ubifs-utils/libubifs/super.c @@ -138,6 +138,53 @@ int close_target(struct ubifs_info *c)  }  /** + * ubifs_open_volume - open UBI volume. + * @c: the UBIFS file-system description object + * @volume_name: the UBI volume name + * + * Open ubi volume. This function is implemented by open_ubi + open_target. + * + * Returns %0 in case of success and a negative error code in case of failure. + */ +int ubifs_open_volume(struct ubifs_info *c, const char *volume_name) +{ +	int err; + +	err = open_ubi(c, volume_name); +	if (err) { +		ubifs_err(c, "cannot open libubi. %s", strerror(errno)); +		return err; +	} + +	err = open_target(c); +	if (err) +		close_ubi(c); + +	return err; +} + +/** + * ubifs_close_volume - close UBI volume. + * @c: the UBIFS file-system description object + * + * Close ubi volume. This function is implemented by close_target + close_ubi. + * + * Returns %0 in case of success and a negative error code in case of failure. + */ +int ubifs_close_volume(struct ubifs_info *c) +{ +	int err; + +	err = close_target(c); +	if (err) +		return err; + +	close_ubi(c); + +	return 0; +} + +/**   * check_volume_empty - check if the UBI volume is empty.   * @c: the UBIFS file-system description object   * @@ -197,6 +244,11 @@ void init_ubifs_info(struct ubifs_info *c, int program_type)  	case MKFS_PROGRAM_TYPE:  		c->program_name = MKFS_PROGRAM_NAME;  		break; +	case FSCK_PROGRAM_TYPE: +		c->program_name = FSCK_PROGRAM_NAME; +		/* Always check crc for data node. */ +		c->no_chk_data_crc = 0; +		break;  	default:  		assert(0);  		break; | 
