Loading fs/adfs/map.c +9 −4 Original line number Diff line number Diff line Loading @@ -355,14 +355,19 @@ struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_discrecor unsigned int map_addr, zone_size, nzones; int ret; nzones = asb->s_map_size; nzones = dr->nzones | dr->nzones_high << 8; zone_size = (8 << dr->log2secsize) - le16_to_cpu(dr->zone_spare); asb->s_idlen = dr->idlen; asb->s_map_size = nzones; asb->s_map2blk = dr->log2bpmb - dr->log2secsize; asb->s_log2sharesize = dr->log2sharesize; asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1); map_addr = (nzones >> 1) * zone_size - ((nzones > 1) ? ADFS_DR_SIZE_BITS : 0); map_addr = signed_asl(map_addr, asb->s_map2blk); asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1); dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL); if (dm == NULL) { adfs_error(sb, "not enough memory"); Loading fs/adfs/super.c +1 −6 Original line number Diff line number Diff line Loading @@ -289,6 +289,7 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent) return -ENOMEM; sb->s_fs_info = asb; sb->s_magic = ADFS_SUPER_MAGIC; sb->s_time_gran = 10000000; /* set default options */ Loading Loading @@ -356,12 +357,6 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent) * blocksize on this device should now be set to the ADFS log2secsize */ sb->s_magic = ADFS_SUPER_MAGIC; asb->s_idlen = dr->idlen; asb->s_map_size = dr->nzones | (dr->nzones_high << 8); asb->s_map2blk = dr->log2bpmb - dr->log2secsize; asb->s_log2sharesize = dr->log2sharesize; asb->s_map = adfs_read_map(sb, dr); if (IS_ERR(asb->s_map)) { ret = PTR_ERR(asb->s_map); Loading Loading
fs/adfs/map.c +9 −4 Original line number Diff line number Diff line Loading @@ -355,14 +355,19 @@ struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_discrecor unsigned int map_addr, zone_size, nzones; int ret; nzones = asb->s_map_size; nzones = dr->nzones | dr->nzones_high << 8; zone_size = (8 << dr->log2secsize) - le16_to_cpu(dr->zone_spare); asb->s_idlen = dr->idlen; asb->s_map_size = nzones; asb->s_map2blk = dr->log2bpmb - dr->log2secsize; asb->s_log2sharesize = dr->log2sharesize; asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1); map_addr = (nzones >> 1) * zone_size - ((nzones > 1) ? ADFS_DR_SIZE_BITS : 0); map_addr = signed_asl(map_addr, asb->s_map2blk); asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1); dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL); if (dm == NULL) { adfs_error(sb, "not enough memory"); Loading
fs/adfs/super.c +1 −6 Original line number Diff line number Diff line Loading @@ -289,6 +289,7 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent) return -ENOMEM; sb->s_fs_info = asb; sb->s_magic = ADFS_SUPER_MAGIC; sb->s_time_gran = 10000000; /* set default options */ Loading Loading @@ -356,12 +357,6 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent) * blocksize on this device should now be set to the ADFS log2secsize */ sb->s_magic = ADFS_SUPER_MAGIC; asb->s_idlen = dr->idlen; asb->s_map_size = dr->nzones | (dr->nzones_high << 8); asb->s_map2blk = dr->log2bpmb - dr->log2secsize; asb->s_log2sharesize = dr->log2sharesize; asb->s_map = adfs_read_map(sb, dr); if (IS_ERR(asb->s_map)) { ret = PTR_ERR(asb->s_map); Loading