Changeset 4cdac68 in mainline for uspace/lib/ext4/libext4_balloc.c


Ignore:
Timestamp:
2012-07-20T20:27:31Z (11 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade
Children:
b828907
Parents:
865a4bf
Message:

debugged initialization of block group structures

File:
1 edited

Legend:

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

    r865a4bf r4cdac68  
    4040#include "libext4.h"
    4141
    42 /** Convert block address to relative index in block group.
    43  *
    44  * @param sb                    superblock pointer
    45  * @param block_addr    block number to convert
    46  * @return                              relative number of block
    47  */
    48 static uint32_t ext4_balloc_blockaddr2_index_in_group(ext4_superblock_t *sb,
    49                 uint32_t block_addr)
    50 {
    51         uint32_t blocks_per_group = ext4_superblock_get_blocks_per_group(sb);
    52         uint32_t first_block = ext4_superblock_get_first_data_block(sb);
    53 
    54         /* First block == 0 or 1 */
    55         if (first_block == 0) {
    56                 return block_addr % blocks_per_group;
    57         } else {
    58                 return (block_addr - 1) % blocks_per_group;
    59         }
    60 }
    61 
    62 /** Convert relative block number to absolute.
    63  *
    64  * @param sb                    superblock pointer
    65  * @param index                 relative index of block in group
    66  * @param bgid                  index of block group
    67  * @return                              absolute number of block
    68  */
    69 static uint32_t ext4_balloc_index_in_group2blockaddr(ext4_superblock_t *sb,
    70                 uint32_t index, uint32_t bgid)
    71 {
    72         uint32_t blocks_per_group = ext4_superblock_get_blocks_per_group(sb);
    73 
    74         if (ext4_superblock_get_first_data_block(sb) == 0) {
    75                 return bgid * blocks_per_group + index;
    76         } else {
    77                 return bgid * blocks_per_group + index + 1;
    78         }
    79 
    80 }
    81 
    8242/** Compute number of block group from block address.
    8343 *
     
    11676        /* Compute indexes */
    11777        uint32_t block_group = ext4_balloc_get_bgid_of_block(sb, block_addr);
    118         uint32_t index_in_group = ext4_balloc_blockaddr2_index_in_group(sb, block_addr);
     78        uint32_t index_in_group =
     79                        ext4_filesystem_blockaddr2_index_in_group(sb, block_addr);
    11980
    12081        /* Load block group reference */
     
    213174
    214175        uint32_t index_in_group_first =
    215                         ext4_balloc_blockaddr2_index_in_group(sb, first);
     176                        ext4_filesystem_blockaddr2_index_in_group(sb, first);
    216177
    217178
     
    278239 * @return                      absolute block index of first block
    279240 */
    280 static uint32_t ext4_balloc_get_first_data_block_in_group(
     241uint32_t ext4_balloc_get_first_data_block_in_group(
    281242                ext4_superblock_t *sb, ext4_block_group_ref_t *bg_ref)
    282243{
     
    415376        /* Load block group number for goal and relative index */
    416377        uint32_t block_group = ext4_balloc_get_bgid_of_block(sb, goal);
    417         uint32_t index_in_group = ext4_balloc_blockaddr2_index_in_group(sb, goal);
     378        uint32_t index_in_group =
     379                        ext4_filesystem_blockaddr2_index_in_group(sb, goal);
    418380
    419381
     
    430392                        ext4_balloc_get_first_data_block_in_group(sb, bg_ref);
    431393
    432         uint32_t first_in_group_index = ext4_balloc_blockaddr2_index_in_group(
     394        uint32_t first_in_group_index = ext4_filesystem_blockaddr2_index_in_group(
    433395                        sb, first_in_group);
    434396
     
    460422                }
    461423
    462                 allocated_block = ext4_balloc_index_in_group2blockaddr(
     424                allocated_block = ext4_filesystem_index_in_group2blockaddr(
    463425                                                        sb, index_in_group, block_group);
    464426
     
    486448                        }
    487449
    488                         allocated_block = ext4_balloc_index_in_group2blockaddr(
     450                        allocated_block = ext4_filesystem_index_in_group2blockaddr(
    489451                                        sb, tmp_idx, block_group);
    490452
     
    504466                }
    505467
    506                 allocated_block = ext4_balloc_index_in_group2blockaddr(
     468                allocated_block = ext4_filesystem_index_in_group2blockaddr(
    507469                                sb, rel_block_idx, block_group);
    508470
     
    520482                }
    521483
    522                 allocated_block = ext4_balloc_index_in_group2blockaddr(
     484                allocated_block = ext4_filesystem_index_in_group2blockaddr(
    523485                                sb, rel_block_idx, block_group);
    524486
     
    557519                first_in_group = ext4_balloc_get_first_data_block_in_group(
    558520                                sb, bg_ref);
    559                 index_in_group = ext4_balloc_blockaddr2_index_in_group(sb,
     521                index_in_group = ext4_filesystem_blockaddr2_index_in_group(sb,
    560522                                                first_in_group);
    561523                blocks_in_group = ext4_superblock_get_blocks_in_group(sb, bgid);
    562524
    563                 first_in_group_index = ext4_balloc_blockaddr2_index_in_group(
     525                first_in_group_index = ext4_filesystem_blockaddr2_index_in_group(
    564526                        sb, first_in_group);
    565527
     
    578540                        }
    579541
    580                         allocated_block = ext4_balloc_index_in_group2blockaddr(
     542                        allocated_block = ext4_filesystem_index_in_group2blockaddr(
    581543                                        sb, rel_block_idx, bgid);
    582544
     
    594556                        }
    595557
    596                         allocated_block = ext4_balloc_index_in_group2blockaddr(
     558                        allocated_block = ext4_filesystem_index_in_group2blockaddr(
    597559                                        sb, rel_block_idx, bgid);
    598560
     
    656618        /* Compute indexes */
    657619        uint32_t block_group = ext4_balloc_get_bgid_of_block(sb, fblock);
    658         uint32_t index_in_group = ext4_balloc_blockaddr2_index_in_group(sb, fblock);
     620        uint32_t index_in_group =
     621                        ext4_filesystem_blockaddr2_index_in_group(sb, fblock);
    659622
    660623        /* Load block group reference */
Note: See TracChangeset for help on using the changeset viewer.