Changeset 01accb7 in mainline for uspace/srv/fs/minixfs/mfs_rw.c


Ignore:
Timestamp:
2011-06-20T19:25:37Z (13 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c955be91
Parents:
1878386
Message:

Fix some bugs when freeing unused double indirect zones

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/minixfs/mfs_rw.c

    r1878386 r01accb7  
    268268        int fzone_to_free = (rblock < 0 ? 0 : rblock) / ptrs_per_block;
    269269
     270        if ((fzone_to_free % ptrs_per_block) != 0)
     271                ++fzone_to_free;
     272
    270273        /*free the entire double indirect zone*/
    271274        uint32_t *dbl_zone;
     275
     276        if (ino_i->i_izone[1] == 0) {
     277                /*Nothing to be done*/
     278                return EOK;
     279        }
    272280
    273281        r = read_ind_zone(inst, ino_i->i_izone[1], &dbl_zone);
     
    282290        }
    283291
    284         if (fzone_to_free) {
     292        if (fzone_to_free == 0) {
    285293                r = mfs_free_bit(inst, ino_i->i_izone[1], BMAP_ZONE);
    286294                ino_i->i_izone[1] = 0;
Note: See TracChangeset for help on using the changeset viewer.