if (!data)
return errno ? -errno : 1;
version = get_minix_version(data, &swabme);
- if (version < 1)
- return 1;
-
- if (version <= 2) {
+ switch (version) {
+ case 1:
+ case 2: {
struct minix_super_block *sb = (struct minix_super_block *) data;
uint16_t state = minix_swab16(swabme, sb->s_state);
zmaps = minix_swab16(swabme, sb->s_zmap_blocks);
firstz = minix_swab16(swabme, sb->s_firstdatazone);
zone_size = sb->s_log_zone_size;
- } else if (version == 3) {
+ break;
+ }
+ case 3: {
struct minix3_super_block *sb = (struct minix3_super_block *) data;
zones = minix_swab32(swabme, sb->s_zones);
zmaps = minix_swab16(swabme, sb->s_zmap_blocks);
firstz = minix_swab16(swabme, sb->s_firstdatazone);
zone_size = sb->s_log_zone_size;
+ break;
+ }
+ default:
+ return 1;
}
/* sanity checks to be sure that the FS is really minix.