Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 70ac0af in mainline


Ignore:
Timestamp:
2011-07-06T19:26:06Z (10 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master
Children:
e80c2ff
Parents:
efa5fa1
Message:

add wrapper functions to mfs_alloc_bit and mfs_free_bit to improve the code readability

Location:
uspace/srv/fs/minixfs
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/minixfs/mfs.h

    refa5fa1 r70ac0af  
    221221/*mfs_balloc.c*/
    222222extern int
    223 mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid);
    224 
    225 extern int
    226 mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid);
     223mfs_alloc_inode(struct mfs_instance *inst, uint32_t *inum);
     224
     225extern int
     226mfs_free_inode(struct mfs_instance *inst, uint32_t inum);
     227
     228extern int
     229mfs_alloc_zone(struct mfs_instance *inst, uint32_t *zone);
     230
     231extern int
     232mfs_free_zone(struct mfs_instance *inst, uint32_t zone);
    227233
    228234#endif
  • uspace/srv/fs/minixfs/mfs_balloc.c

    refa5fa1 r70ac0af  
    3939                      const bool native, unsigned start_bit);
    4040
    41 int
     41static int
     42mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid);
     43
     44static int
     45mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid);
     46
     47
     48int
     49mfs_alloc_inode(struct mfs_instance *inst, uint32_t *inum)
     50{
     51        return mfs_alloc_bit(inst, inum, BMAP_INODE);
     52}
     53
     54int
     55mfs_free_inode(struct mfs_instance *inst, uint32_t inum)
     56{
     57        return mfs_free_bit(inst, inum, BMAP_INODE);
     58}
     59
     60int
     61mfs_alloc_zone(struct mfs_instance *inst, uint32_t *zone)
     62{
     63        int r = mfs_alloc_bit(inst, zone, BMAP_ZONE);
     64
     65        *zone += inst->sbi->firstdatazone;
     66        return r;
     67}
     68
     69int
     70mfs_free_zone(struct mfs_instance *inst, uint32_t zone)
     71{
     72        zone -= inst->sbi->firstdatazone;
     73
     74        return mfs_free_bit(inst, zone, BMAP_ZONE);
     75}
     76
     77static int
    4278mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid)
    4379{
     
    5288
    5389        if (bid == BMAP_ZONE) {
    54                 idx -= sbi->firstdatazone;
    5590                start_block = 2 + sbi->ibmap_blocks;
    5691                if (idx > sbi->nzones) {
     
    92127}
    93128
    94 int
     129static int
    95130mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid)
    96131{
     
    152187
    153188                *search = *idx;
    154 
    155                 if (bid == BMAP_ZONE)
    156                         *idx += sbi->firstdatazone;
    157 
    158189                b->dirty = true;
    159190                r = block_put(b);
  • uspace/srv/fs/minixfs/mfs_inode.c

    refa5fa1 r70ac0af  
    338338                        continue; /*Sparse block*/
    339339
    340                 r = mfs_free_bit(mnode->instance, old_zone, BMAP_ZONE);
     340                r = mfs_free_zone(mnode->instance, old_zone);
    341341                on_error(r, goto exit_error);
    342342        }
     
    379379                uint32_t dummy;
    380380
    381                 r = mfs_alloc_bit(mnode->instance, &new_zone, BMAP_ZONE);
     381                r = mfs_alloc_zone(mnode->instance, &new_zone);
    382382                on_error(r, return r);
    383383
  • uspace/srv/fs/minixfs/mfs_ops.c

    refa5fa1 r70ac0af  
    268268
    269269        /*Alloc a new inode*/
    270         r = mfs_alloc_bit(inst, &inum, BMAP_INODE);
     270        r = mfs_alloc_inode(inst, &inum);
    271271        on_error(r, return r);
    272272
     
    769769                if (block == 0) {
    770770                        /*Writing in a sparse block*/
    771                         r = mfs_alloc_bit(mnode->instance, &block, BMAP_ZONE);
     771                        r = mfs_alloc_zone(mnode->instance, &block);
    772772                        on_error(r, goto out_err);
    773773                        flags = BLOCK_FLAGS_NOREAD;
     
    776776                uint32_t dummy;
    777777
    778                 r = mfs_alloc_bit(mnode->instance, &block, BMAP_ZONE);
     778                r = mfs_alloc_zone(mnode->instance, &block);
    779779                on_error(r, goto out_err);
    780780
     
    849849        r = inode_shrink(mnode, mnode->ino_i->i_size);
    850850        on_error(r, return r);
    851         r = mfs_free_bit(mnode->instance, mnode->ino_i->index, BMAP_INODE);
     851        r = mfs_free_inode(mnode->instance, mnode->ino_i->index);
    852852        on_error(r, return r);
    853853
  • uspace/srv/fs/minixfs/mfs_rw.c

    refa5fa1 r70ac0af  
    100100
    101101        if (old_zone > 0)
    102                 r = mfs_free_bit(mnode->instance, old_zone, BMAP_ZONE);
     102                r = mfs_free_zone(mnode->instance, old_zone);
    103103
    104104        return r;
     
    256256                /*free the single indirect zone*/
    257257                if (ino_i->i_izone[0]) {
    258                         r = mfs_free_bit(inst, ino_i->i_izone[0], BMAP_ZONE);
     258                        r = mfs_free_zone(inst, ino_i->i_izone[0]);
    259259                        on_error(r, return r);
    260260
     
    286286                        continue;
    287287
    288                 r = mfs_free_bit(inst, dbl_zone[i], BMAP_ZONE);
     288                r = mfs_free_zone(inst, dbl_zone[i]);
    289289                on_error(r, return r);
    290290        }
    291291
    292292        if (fzone_to_free == 0) {
    293                 r = mfs_free_bit(inst, ino_i->i_izone[1], BMAP_ZONE);
     293                r = mfs_free_zone(inst, ino_i->i_izone[1]);
    294294                ino_i->i_izone[1] = 0;
    295295                ino_i->dirty = true;
     
    321321        int r;
    322322
    323         r = mfs_alloc_bit(inst, zone, BMAP_ZONE);
     323        r = mfs_alloc_zone(inst, zone);
    324324        on_error(r, return r);
    325325
Note: See TracChangeset for help on using the changeset viewer.