summaryrefslogtreecommitdiff
path: root/src/ext4_dir.c
diff options
context:
space:
mode:
authorKaho Ng <ngkaho1234@gmail.com>2016-06-30 05:17:33 +0800
committerKaho Ng <ngkaho1234@gmail.com>2016-06-30 05:40:06 +0800
commit0ac15f45592212176fb388cd51995c6cc53950ed (patch)
tree4cc4aeac7bbfcffa37fb22db1d0313f8ff482c2d /src/ext4_dir.c
parenta84a1b68d698d9a5cfa5efd55b057df7724996b2 (diff)
ext4: special inode creation support
Diffstat (limited to 'src/ext4_dir.c')
-rw-r--r--src/ext4_dir.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/ext4_dir.c b/src/ext4_dir.c
index 438d386..4836d62 100644
--- a/src/ext4_dir.c
+++ b/src/ext4_dir.c
@@ -314,9 +314,21 @@ void ext4_dir_write_entry(struct ext4_sblock *sb, struct ext4_dir_en *en,
case EXT4_INODE_MODE_SOFTLINK:
ext4_dir_en_set_inode_type(sb, en, EXT4_DE_SYMLINK);
break;
+ case EXT4_INODE_MODE_CHARDEV:
+ ext4_dir_en_set_inode_type(sb, en, EXT4_DE_CHRDEV);
+ break;
+ case EXT4_INODE_MODE_BLOCKDEV:
+ ext4_dir_en_set_inode_type(sb, en, EXT4_DE_BLKDEV);
+ break;
+ case EXT4_INODE_MODE_FIFO:
+ ext4_dir_en_set_inode_type(sb, en, EXT4_DE_FIFO);
+ break;
+ case EXT4_INODE_MODE_SOCKET:
+ ext4_dir_en_set_inode_type(sb, en, EXT4_DE_SOCK);
+ break;
default:
- /* FIXME: right now we only support 3 inode type. */
- ext4_assert(0);
+ /* FIXME: unsupported filetype */
+ ext4_dir_en_set_inode_type(sb, en, EXT4_DE_UNKNOWN);
}
/* Set basic attributes */