Changeset 9cfe0d5 in mainline


Ignore:
Timestamp:
2011-03-06T17:21:19Z (13 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ae1ae27
Parents:
e6aaa59
Message:

fix bug when initializing bitmaps

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/mkminix/mkminix.c

    re6aaa59 r9cfe0d5  
    7373static void     setup_superblock(struct mfs_superblock *sb, mfs_params_t *opt);
    7474static void     setup_superblock_v3(struct mfs3_superblock *sb, mfs_params_t *opt);
    75 static void     setup_bitmaps(devmap_handle_t handle, uint32_t ninodes, uint32_t nzones);
     75static void     setup_bitmaps(devmap_handle_t handle, uint32_t ninodes,
     76                                uint32_t nzones, int bsize);
    7677static void     mark_bmap(uint8_t *bmap, int idx, int v);
    7778
     
    212213                }
    213214                setup_superblock_v3(sb3, &opt);
    214                 setup_bitmaps(handle, sb3->s_ninodes, sb3->s_total_zones);
     215                setup_bitmaps(handle, sb3->s_ninodes,
     216                                sb3->s_total_zones, sb3->s_block_size);
    215217        } else {
    216218                sb = (struct mfs_superblock *) malloc(sizeof(struct mfs_superblock));
     
    221223                setup_superblock(sb, &opt);
    222224                block_write_direct(handle, MFS_SUPERBLOCK, 1, sb);
    223                 setup_bitmaps(handle, sb->s_ninodes, sb->s_nzones);
     225                setup_bitmaps(handle, sb->s_ninodes, sb->s_nzones, MFS_BLOCKSIZE);
    224226        }
    225227
     
    291293}
    292294
    293 static void setup_bitmaps(devmap_handle_t handle, uint32_t ninodes, uint32_t nzones)
     295static void setup_bitmaps(devmap_handle_t handle, uint32_t ninodes,
     296                                uint32_t nzones, int bsize)
    294297{
    295298        uint8_t *ibmap_buf, *zbmap_buf;
    296         int ibmap_nblocks = 1 + (ninodes / 8) / MFS_BLOCKSIZE;
    297         int zbmap_nblocks = 1 + (nzones / 8) / MFS_BLOCKSIZE;
     299        int ibmap_nblocks = 1 + (ninodes / 8) / bsize;
     300        int zbmap_nblocks = 1 + (nzones / 8) / bsize;
    298301        unsigned int i;
    299302
    300         ibmap_buf = (uint8_t *) malloc(ibmap_nblocks * MFS_BLOCKSIZE);
    301         zbmap_buf = (uint8_t *) malloc(zbmap_nblocks * MFS_BLOCKSIZE);
    302 
    303         memset(ibmap_buf, 0xFF, ibmap_nblocks * MFS_BLOCKSIZE);
    304         memset(zbmap_buf, 0xFF, zbmap_nblocks * MFS_BLOCKSIZE);
     303        ibmap_buf = (uint8_t *) malloc(ibmap_nblocks * bsize);
     304        zbmap_buf = (uint8_t *) malloc(zbmap_nblocks * bsize);
     305
     306        memset(ibmap_buf, 0xFF, ibmap_nblocks * bsize);
     307        memset(zbmap_buf, 0xFF, zbmap_nblocks * bsize);
    305308
    306309        for (i = 2; i < ninodes; ++i) {
     
    308311                mark_bmap(zbmap_buf, i, FREE);
    309312        }
     313
     314        ibmap_nblocks *= bsize / MFS_BLOCKSIZE;
     315        zbmap_nblocks *= bsize / MFS_BLOCKSIZE;
    310316
    311317        block_write_direct(handle, 2, ibmap_nblocks, ibmap_buf);
Note: See TracChangeset for help on using the changeset viewer.