};
-static inline int test_root(fsw_u32 a, int b)
+static __inline int test_root(fsw_u32 a, int b)
{
- int num = b;
+ fsw_u32 num = b;
while (a > num)
num *= b;
}
/* calculate the first block number of the group */
-static inline fsw_u32
+static __inline fsw_u32
fsw_ext4_group_first_block_no(struct ext4_super_block *sb, fsw_u32 group_no)
{
return group_no * (fsw_u32)EXT4_BLOCKS_PER_GROUP(sb) +
return status;
// Get group descriptor table and block number of inode table...
- gdesc = (struct ext4_group_desc *)(buffer + gdesc_index * vol->sb->s_desc_size);
+ gdesc = (struct ext4_group_desc *)((char *)buffer + gdesc_index * vol->sb->s_desc_size);
vol->inotab_bno[groupno] = gdesc->bg_inode_table_lo;
fsw_block_release(vol, gdesc_bno, buffer);
// read the inode block
- groupno = (dno->g.dnode_id - 1) / vol->sb->s_inodes_per_group;
- ino_in_group = (dno->g.dnode_id - 1) % vol->sb->s_inodes_per_group;
+ groupno = (fsw_u32) (dno->g.dnode_id - 1) / vol->sb->s_inodes_per_group;
+ ino_in_group = (fsw_u32) (dno->g.dnode_id - 1) % vol->sb->s_inodes_per_group;
ino_bno = vol->inotab_bno[groupno] +
ino_in_group / (vol->g.phys_blocksize / vol->inode_size);
ino_index = ino_in_group % (vol->g.phys_blocksize / vol->inode_size);
struct fsw_extent *extent)
{
fsw_status_t status;
- fsw_u32 bno, release_bno, buf_offset, file_bcnt;
+ fsw_u32 bno, buf_offset;
int ext_cnt;
void *buffer;
buffer = (void *)dno->raw->i_block;
buf_offset = 0;
while(1) {
- ext4_extent_header = (struct ext4_extent_header *)buffer + buf_offset;
+ ext4_extent_header = (struct ext4_extent_header *)((char *)buffer + buf_offset);
buf_offset += sizeof(struct ext4_extent_header);
FSW_MSG_DEBUG((FSW_MSGSTR("fsw_ext4_get_by_extent: extent header with %d entries\n"),
ext4_extent_header->eh_entries));
if(ext4_extent_header->eh_depth == 0)
{
// Leaf node, the header follows actual extents
- ext4_extent = (struct ext4_extent *)(buffer + buf_offset);
+ ext4_extent = (struct ext4_extent *)((char *)buffer + buf_offset);
buf_offset += sizeof(struct ext4_extent);
FSW_MSG_DEBUG((FSW_MSGSTR("fsw_ext4_get_by_extent: extent node cover %d...\n"), ext4_extent->ee_block));
{
FSW_MSG_DEBUG((FSW_MSGSTR("fsw_ext4_get_by_extent: index extents, depth %d\n"),
ext4_extent_header->eh_depth));
- ext4_extent_idx = (struct ext4_extent_idx *)(buffer + buf_offset);
+ ext4_extent_idx = (struct ext4_extent_idx *)((char *)buffer + buf_offset);
buf_offset += sizeof(struct ext4_extent_idx);
FSW_MSG_DEBUG((FSW_MSGSTR("fsw_ext4_get_by_extent: index node covers block %d...\n"),