static void unixfs_internal_fini(void* filsys) { struct super_block* sb = (struct super_block*)filsys; struct filsys* fs = (struct filsys*)sb->s_fs_info; ino_t i = fs->s_lastino; for (; i >= ROOTINO; i--) { struct inode* tmp = unixfs_internal_iget(i); if (tmp) { struct cpio_newc_node_info* ci = (struct cpio_newc_node_info*)tmp->I_private; if (ci) { free(ci->ci_name); if (ci->ci_linktargetname) free(ci->ci_linktargetname); } unixfs_internal_iput(tmp); unixfs_internal_iput(tmp); } } unixfs_inodelayer_fini(); if (sb) { if (sb->s_bdev >= 0) close(sb->s_bdev); sb->s_bdev = -1; if (sb->s_fs_info) free(sb->s_fs_info); } }
static void unixfs_internal_fini(void* filsys) { unixfs_inodelayer_fini(); struct super_block* sb = (struct super_block*)filsys; if (sb) { struct minix_sb_info* sbi = minix_sb(sb); if (sbi) free(sbi); free(sb); } }
static void unixfs_internal_fini(void* filsys) { struct super_block* sb = (struct super_block*)filsys; struct filsys* fs = (struct filsys*)sb->s_fs_info; ino_t i = fs->s_lastino; for (; i >= ROOTINO; i--) { struct inode* tmp = unixfs_internal_iget(i); if (tmp) { unixfs_internal_iput(tmp); unixfs_internal_iput(tmp); } } unixfs_inodelayer_fini(); if (sb) { if (sb->s_bdev >= 0) close(sb->s_bdev); sb->s_bdev = -1; if (sb->s_fs_info) free(sb->s_fs_info); } }