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

Changeset e25d78c in mainline


Ignore:
Timestamp:
2012-07-30T19:31:47Z (9 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master
Children:
c15849c
Parents:
a5b1740
Message:

fixed bug with unused inodes count

Location:
uspace/lib/ext4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext4/libext4_filesystem.c

    ra5b1740 re25d78c  
    469469                                EXT4_BLOCK_GROUP_INODE_UNINIT);
    470470
    471                 ext4_block_group_set_itable_unused(newref->block_group,
    472                                 newref->fs->superblock, 0);
     471//              ext4_block_group_set_itable_unused(newref->block_group,
     472//                              newref->fs->superblock, 0);
    473473
    474474
  • uspace/lib/ext4/libext4_ialloc.c

    ra5b1740 re25d78c  
    239239                        }
    240240
     241                        /* Decrease unused inodes count */
     242                        if (ext4_block_group_has_flag(bg,
     243                                EXT4_BLOCK_GROUP_ITABLE_ZEROED)) {
     244
     245                                uint32_t unused =
     246                                                ext4_block_group_get_itable_unused(bg, sb);
     247
     248                                uint32_t inodes_in_group =
     249                                                ext4_superblock_get_inodes_in_group(sb, bgid);
     250
     251                                uint32_t free = inodes_in_group - unused;
     252
     253                                if (index_in_group >= free) {
     254                                        unused = inodes_in_group - (index_in_group + 1);
     255
     256                                        ext4_block_group_set_itable_unused(bg, sb, unused);
     257                                }
     258                        }
     259
    241260                        /* Save modified block group */
    242261                        bg_ref->dirty = true;
Note: See TracChangeset for help on using the changeset viewer.