summaryrefslogtreecommitdiff
path: root/src/ext4_inode.c
diff options
context:
space:
mode:
authorngkaho1234 <ngkaho1234@gmail.com>2016-05-12 13:59:44 +0000
committerKaho Ng <ngkaho1234@gmail.com>2016-05-13 21:20:03 +0800
commit5cdc17dc795e0a21486c97b5a34c8dff4bd60444 (patch)
tree2a7a07c1eadddc66e4a0d5db35bb5276f20c8168 /src/ext4_inode.c
parent8eff9f9971a1056ade031e646acb9b07a972fd65 (diff)
Refine extra_isize field handling
Diffstat (limited to 'src/ext4_inode.c')
-rw-r--r--src/ext4_inode.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/ext4_inode.c b/src/ext4_inode.c
index 2c088cd..c64ddbc 100644
--- a/src/ext4_inode.c
+++ b/src/ext4_inode.c
@@ -270,14 +270,21 @@ void ext4_inode_set_generation(struct ext4_inode *inode, uint32_t gen)
inode->generation = to_le32(gen);
}
-uint16_t ext4_inode_get_extra_isize(struct ext4_inode *inode)
+uint16_t ext4_inode_get_extra_isize(struct ext4_sblock *sb,
+ struct ext4_inode *inode)
{
- return to_le16(inode->extra_isize);
+ if (ext4_sb_feature_ro_com(sb, EXT4_FRO_COM_EXTRA_ISIZE))
+ return to_le16(inode->extra_isize);
+ else
+ return 0;
}
-void ext4_inode_set_extra_isize(struct ext4_inode *inode, uint16_t size)
+void ext4_inode_set_extra_isize(struct ext4_sblock *sb,
+ struct ext4_inode *inode,
+ uint16_t size)
{
- inode->extra_isize = to_le16(size);
+ if (ext4_sb_feature_ro_com(sb, EXT4_FRO_COM_EXTRA_ISIZE))
+ inode->extra_isize = to_le16(size);
}
uint64_t ext4_inode_get_file_acl(struct ext4_inode *inode,