mirror of https://gitee.com/openkylin/linux.git
fs/adfs: map: move map-specific sb initialisation to map.c
Move map specific superblock initialisation to map.c, rather than having it spread into super.c. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
792314f8b2
commit
f6f14a0d71
|
@ -355,14 +355,19 @@ struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_discrecor
|
||||||
unsigned int map_addr, zone_size, nzones;
|
unsigned int map_addr, zone_size, nzones;
|
||||||
int ret;
|
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);
|
zone_size = (8 << dr->log2secsize) - le16_to_cpu(dr->zone_spare);
|
||||||
map_addr = (nzones >> 1) * zone_size -
|
|
||||||
((nzones > 1) ? ADFS_DR_SIZE_BITS : 0);
|
|
||||||
map_addr = signed_asl(map_addr, asb->s_map2blk);
|
|
||||||
|
|
||||||
|
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);
|
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);
|
||||||
|
|
||||||
dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL);
|
dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL);
|
||||||
if (dm == NULL) {
|
if (dm == NULL) {
|
||||||
adfs_error(sb, "not enough memory");
|
adfs_error(sb, "not enough memory");
|
||||||
|
|
|
@ -289,6 +289,7 @@ static int adfs_fill_super(struct super_block *sb, void *data, int silent)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
sb->s_fs_info = asb;
|
sb->s_fs_info = asb;
|
||||||
|
sb->s_magic = ADFS_SUPER_MAGIC;
|
||||||
sb->s_time_gran = 10000000;
|
sb->s_time_gran = 10000000;
|
||||||
|
|
||||||
/* set default options */
|
/* set default options */
|
||||||
|
@ -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
|
* 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);
|
asb->s_map = adfs_read_map(sb, dr);
|
||||||
if (IS_ERR(asb->s_map)) {
|
if (IS_ERR(asb->s_map)) {
|
||||||
ret = PTR_ERR(asb->s_map);
|
ret = PTR_ERR(asb->s_map);
|
||||||
|
|
Loading…
Reference in New Issue