diff options
| author | ngkaho1234 <ngkaho1234@gmail.com> | 2015-10-29 17:56:21 +0800 |
|---|---|---|
| committer | ngkaho1234 <ngkaho1234@gmail.com> | 2015-10-29 17:56:21 +0800 |
| commit | 25ae70a7469ac86bcd1dafcd30a5c1934955bd32 (patch) | |
| tree | 7459b6b104a6fb6fd8bf4a6b861da7b49358be22 | |
| parent | 1a812a02d49e19f5299bff04705a37d23c366be2 (diff) | |
FIX: fake inode checksum failing message.
| -rw-r--r-- | lwext4/ext4_fs.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lwext4/ext4_fs.c b/lwext4/ext4_fs.c index 7b2d404..9db0459 100644 --- a/lwext4/ext4_fs.c +++ b/lwext4/ext4_fs.c @@ -731,8 +731,10 @@ static bool ext4_fs_verify_inode_csum(struct ext4_inode_ref *inode_ref) #define ext4_fs_verify_inode_csum(...) true #endif -int ext4_fs_get_inode_ref(struct ext4_fs *fs, uint32_t index, - struct ext4_inode_ref *ref) +static int +__ext4_fs_get_inode_ref(struct ext4_fs *fs, uint32_t index, + struct ext4_inode_ref *ref, + bool initialized) { /* Compute number of i-nodes, that fits in one data block */ uint32_t inodes_per_group = ext4_get32(&fs->sb, inodes_per_group); @@ -786,7 +788,7 @@ int ext4_fs_get_inode_ref(struct ext4_fs *fs, uint32_t index, ref->fs = fs; ref->dirty = false; - if (!ext4_fs_verify_inode_csum(ref)) { + if (initialized && !ext4_fs_verify_inode_csum(ref)) { ext4_dbg(DEBUG_FS, DBG_WARN "Inode checksum failed." "Inode: %" PRIu32"\n", @@ -796,6 +798,12 @@ int ext4_fs_get_inode_ref(struct ext4_fs *fs, uint32_t index, return EOK; } +int ext4_fs_get_inode_ref(struct ext4_fs *fs, uint32_t index, + struct ext4_inode_ref *ref) +{ + return __ext4_fs_get_inode_ref(fs, index, ref, true); +} + int ext4_fs_put_inode_ref(struct ext4_inode_ref *ref) { /* Check if reference modified */ @@ -861,7 +869,7 @@ int ext4_fs_alloc_inode(struct ext4_fs *fs, struct ext4_inode_ref *inode_ref, return rc; /* Load i-node from on-disk i-node table */ - rc = ext4_fs_get_inode_ref(fs, index, inode_ref); + rc = __ext4_fs_get_inode_ref(fs, index, inode_ref, false); if (rc != EOK) { ext4_ialloc_free_inode(fs, index, is_dir); return rc; |
