diff options
| author | ngkaho1234 <ngkaho1234@gmail.com> | 2015-10-27 22:25:17 +0800 |
|---|---|---|
| committer | ngkaho1234 <ngkaho1234@gmail.com> | 2015-10-27 22:25:17 +0800 |
| commit | c7c5aba4d7e3af2e3676051d14ed9512fac76bc2 (patch) | |
| tree | bfab0d420f3289d4712557b55ae2ec51d0147dbc | |
| parent | 76208824002dca9dffab5ee03fe66239ad4493b3 (diff) | |
FIX: ext4_extent.c failed to be compiled.
| -rw-r--r-- | lwext4/ext4_extent.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/lwext4/ext4_extent.c b/lwext4/ext4_extent.c index 5e1ec8c..67d6b70 100644 --- a/lwext4/ext4_extent.c +++ b/lwext4/ext4_extent.c @@ -43,6 +43,7 @@ #include "ext4_extent.h" #include "ext4_inode.h" #include "ext4_super.h" +#include "ext4_crc32c.h" #include "ext4_blockdev.h" #include "ext4_balloc.h" #include "ext4_fs.h" @@ -151,6 +152,18 @@ static uint32_t ext4_ext_block_csum(struct ext4_inode_ref *inode_ref, return checksum; } +static struct ext4_extent_header *ext_block_hdr(struct ext4_block *block) +{ + return (struct ext4_extent_header *)block->data; +} + +static struct ext4_extent_tail * +find_ext4_extent_tail(struct ext4_extent_header *eh) +{ + return (struct ext4_extent_tail *)(((char *)eh) + + EXT4_EXTENT_TAIL_OFFSET(eh)); +} + /* * BIG FAT NOTES: * Currently we do not verify the checksum of extent @@ -465,7 +478,7 @@ int ext4_extent_remove_space(struct ext4_inode_ref *inode_ref, ext4_lblk_t from, } ext4_extent_header_set_entries_count(path_ptr->header, entries); - ext4_extent_block_csum_set(inode_ref, path_ptr->header); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; /* If leaf node is empty, parent entry must be modified */ @@ -507,7 +520,7 @@ int ext4_extent_remove_space(struct ext4_inode_ref *inode_ref, ext4_lblk_t from, } ext4_extent_header_set_entries_count(path_ptr->header, entries); - ext4_extent_block_csum_set(inode_ref, path_ptr->header); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; /* Free the node if it is empty */ @@ -635,7 +648,7 @@ static int ext4_extent_append_extent(struct ext4_inode_ref *inode_ref, path_ptr->depth); ext4_extent_header_set_generation(path_ptr->header, 0); - ext4_extent_block_csum_set(inode_ref, path_ptr->header); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; /* Jump to the preceding item */ @@ -661,7 +674,7 @@ static int ext4_extent_append_extent(struct ext4_inode_ref *inode_ref, ext4_extent_header_set_entries_count(path_ptr->header, entries + 1); - ext4_extent_block_csum_set(inode_ref, path_ptr->header); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; /* No more splitting needed */ @@ -744,7 +757,7 @@ static int ext4_extent_append_extent(struct ext4_inode_ref *inode_ref, ext4_extent_header_set_max_entries_count(old_root->header, limit); - ext4_extent_block_csum_set(inode_ref, ext_block_hdr(old_root->block)); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&old_root->block)); old_root->block.dirty = true; /* Re-initialize new root metadata */ @@ -859,7 +872,7 @@ ext4_extent_append_block(struct ext4_inode_ref *inode_ref, uint32_t *iblock, inode_ref->dirty = true; } - ext4_extent_block_csum_set(inode_ref, ext_block_hdr(path_ptr->block)); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; goto finish; @@ -901,7 +914,7 @@ ext4_extent_append_block(struct ext4_inode_ref *inode_ref, uint32_t *iblock, inode_ref->dirty = true; } - ext4_extent_block_csum_set(inode_ref, ext_block_hdr(path_ptr->block)); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; goto finish; @@ -942,7 +955,7 @@ append_extent: inode_ref->dirty = true; } - ext4_extent_block_csum_set(inode_ref, ext_block_hdr(path_ptr->block)); + ext4_extent_block_csum_set(inode_ref, ext_block_hdr(&path_ptr->block)); path_ptr->block.dirty = true; finish: |
