summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKaho Ng <ngkaho1234@gmail.com>2017-02-28 00:05:12 +0800
committerKaho Ng <ngkaho1234@gmail.com>2017-02-28 00:05:28 +0800
commit48d955206bccfd6d4fe25ad0934765428fe7fda2 (patch)
treeb9019dd7154fd365db59dac044f1db67a7c1c86f /src
parent4d530fc1bbb24770246a83beb161a4b9d394f817 (diff)
ext4_inode: deal with i_extra_isize depending on inode size
Diffstat (limited to 'src')
-rw-r--r--src/ext4_inode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ext4_inode.c b/src/ext4_inode.c
index 513da60..13473f7 100644
--- a/src/ext4_inode.c
+++ b/src/ext4_inode.c
@@ -273,7 +273,8 @@ void ext4_inode_set_generation(struct ext4_inode *inode, uint32_t gen)
uint16_t ext4_inode_get_extra_isize(struct ext4_sblock *sb,
struct ext4_inode *inode)
{
- if (ext4_sb_feature_ro_com(sb, EXT4_FRO_COM_EXTRA_ISIZE))
+ uint16_t inode_size = ext4_get16(sb, inode_size);
+ if (inode_size > EXT4_GOOD_OLD_INODE_SIZE)
return to_le16(inode->extra_isize);
else
return 0;
@@ -283,7 +284,8 @@ void ext4_inode_set_extra_isize(struct ext4_sblock *sb,
struct ext4_inode *inode,
uint16_t size)
{
- if (ext4_sb_feature_ro_com(sb, EXT4_FRO_COM_EXTRA_ISIZE))
+ uint16_t inode_size = ext4_get16(sb, inode_size);
+ if (inode_size > EXT4_GOOD_OLD_INODE_SIZE)
inode->extra_isize = to_le16(size);
}