diff options
| author | Kaho Ng <ngkaho1234@gmail.com> | 2016-06-30 05:17:33 +0800 |
|---|---|---|
| committer | Kaho Ng <ngkaho1234@gmail.com> | 2016-06-30 05:40:06 +0800 |
| commit | 0ac15f45592212176fb388cd51995c6cc53950ed (patch) | |
| tree | 4cc4aeac7bbfcffa37fb22db1d0313f8ff482c2d /src/ext4_inode.c | |
| parent | a84a1b68d698d9a5cfa5efd55b057df7724996b2 (diff) | |
ext4: special inode creation support
Diffstat (limited to 'src/ext4_inode.c')
| -rw-r--r-- | src/ext4_inode.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/ext4_inode.c b/src/ext4_inode.c index c64ddbc..513da60 100644 --- a/src/ext4_inode.c +++ b/src/ext4_inode.c @@ -328,6 +328,26 @@ void ext4_inode_set_indirect_block(struct ext4_inode *inode, uint32_t idx, inode->blocks[idx + EXT4_INODE_INDIRECT_BLOCK] = to_le32(block); } +uint32_t ext4_inode_get_dev(struct ext4_inode *inode) +{ + uint32_t dev_0, dev_1; + dev_0 = ext4_inode_get_direct_block(inode, 0); + dev_1 = ext4_inode_get_direct_block(inode, 1); + + if (dev_0) + return dev_0; + else + return dev_1; +} + +void ext4_inode_set_dev(struct ext4_inode *inode, uint32_t dev) +{ + if (dev & ~0xFFFF) + ext4_inode_set_direct_block(inode, 1, dev); + else + ext4_inode_set_direct_block(inode, 0, dev); +} + uint32_t ext4_inode_type(struct ext4_sblock *sb, struct ext4_inode *inode) { return (ext4_inode_get_mode(sb, inode) & EXT4_INODE_MODE_TYPE_MASK); |
