X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/af8e873ae38b72a56a89485c62bb5ccd22a9f8a7..eb1d71eb06e977f9ea61f6f43e5ce65342faf1cc:/lunaix-os/kernel/fs/twifs/twifs.c diff --git a/lunaix-os/kernel/fs/twifs/twifs.c b/lunaix-os/kernel/fs/twifs/twifs.c index ec2707f..1f061df 100644 --- a/lunaix-os/kernel/fs/twifs/twifs.c +++ b/lunaix-os/kernel/fs/twifs/twifs.c @@ -19,6 +19,8 @@ static struct twifs_node* fs_root; static struct cake_pile* twi_pile; +static volatile int32_t inode_id = 0; + int __twifs_dirlookup(struct v_inode* inode, struct v_dnode* dnode); @@ -58,6 +60,7 @@ twifs_init() twifs->fs_name = HSTR("twifs", 5); twifs->mount = __twifs_mount; twifs->types = FSTYPE_ROFS; + twifs->fs_id = 0; fsm_register(twifs); @@ -164,14 +167,14 @@ __twifs_mount(struct v_superblock* vsb, struct v_dnode* mount_point) struct v_inode* __twifs_create_inode(struct twifs_node* twi_node) { - struct v_inode* inode = vfs_i_alloc(); - *inode = (struct v_inode){ .ctime = 0, - .itype = twi_node->itype, - .lb_addr = 0, - .lb_usage = 0, - .data = twi_node, - .mtime = 0, - .open_count = 0 }; + struct v_inode* inode = vfs_i_alloc(1, inode_id++); + inode->itype = twi_node->itype; + inode->data = twi_node; + + inode->ctime = clock_unixtime(); + inode->atime = inode->ctime; + inode->mtime = inode->ctime; + inode->ops.dir_lookup = __twifs_dirlookup; inode->ops.mkdir = __twifs_mkdir; inode->ops.unlink = __twifs_rmstuff;