Loading arch/s390/hypfs/inode.c +13 −29 Original line number Diff line number Diff line Loading @@ -288,46 +288,30 @@ static int hypfs_fill_super(struct super_block *sb, void *data, int silent) sb->s_blocksize_bits = PAGE_CACHE_SHIFT; sb->s_magic = HYPFS_MAGIC; sb->s_op = &hypfs_s_ops; if (hypfs_parse_options(data, sb)) { rc = -EINVAL; goto err_alloc; } if (hypfs_parse_options(data, sb)) return -EINVAL; root_inode = hypfs_make_inode(sb, S_IFDIR | 0755); if (!root_inode) { rc = -ENOMEM; goto err_alloc; } if (!root_inode) return -ENOMEM; root_inode->i_op = &simple_dir_inode_operations; root_inode->i_fop = &simple_dir_operations; root_dentry = d_alloc_root(root_inode); sb->s_root = root_dentry = d_alloc_root(root_inode); if (!root_dentry) { iput(root_inode); rc = -ENOMEM; goto err_alloc; return -ENOMEM; } if (MACHINE_IS_VM) rc = hypfs_vm_create_files(sb, root_dentry); else rc = hypfs_diag_create_files(sb, root_dentry); if (rc) goto err_tree; return rc; sbi->update_file = hypfs_create_update_file(sb, root_dentry); if (IS_ERR(sbi->update_file)) { rc = PTR_ERR(sbi->update_file); goto err_tree; } if (IS_ERR(sbi->update_file)) return PTR_ERR(sbi->update_file); hypfs_update_update(sb); sb->s_root = root_dentry; pr_info("Hypervisor filesystem mounted\n"); return 0; err_tree: hypfs_delete_tree(root_dentry); d_genocide(root_dentry); dput(root_dentry); err_alloc: kfree(sbi); return rc; } static int hypfs_get_super(struct file_system_type *fst, int flags, Loading @@ -340,12 +324,12 @@ static void hypfs_kill_super(struct super_block *sb) { struct hypfs_sb_info *sb_info = sb->s_fs_info; if (sb->s_root) { if (sb->s_root) hypfs_delete_tree(sb->s_root); if (sb_info->update_file) hypfs_remove(sb_info->update_file); kfree(sb->s_fs_info); sb->s_fs_info = NULL; } kill_litter_super(sb); } Loading Loading
arch/s390/hypfs/inode.c +13 −29 Original line number Diff line number Diff line Loading @@ -288,46 +288,30 @@ static int hypfs_fill_super(struct super_block *sb, void *data, int silent) sb->s_blocksize_bits = PAGE_CACHE_SHIFT; sb->s_magic = HYPFS_MAGIC; sb->s_op = &hypfs_s_ops; if (hypfs_parse_options(data, sb)) { rc = -EINVAL; goto err_alloc; } if (hypfs_parse_options(data, sb)) return -EINVAL; root_inode = hypfs_make_inode(sb, S_IFDIR | 0755); if (!root_inode) { rc = -ENOMEM; goto err_alloc; } if (!root_inode) return -ENOMEM; root_inode->i_op = &simple_dir_inode_operations; root_inode->i_fop = &simple_dir_operations; root_dentry = d_alloc_root(root_inode); sb->s_root = root_dentry = d_alloc_root(root_inode); if (!root_dentry) { iput(root_inode); rc = -ENOMEM; goto err_alloc; return -ENOMEM; } if (MACHINE_IS_VM) rc = hypfs_vm_create_files(sb, root_dentry); else rc = hypfs_diag_create_files(sb, root_dentry); if (rc) goto err_tree; return rc; sbi->update_file = hypfs_create_update_file(sb, root_dentry); if (IS_ERR(sbi->update_file)) { rc = PTR_ERR(sbi->update_file); goto err_tree; } if (IS_ERR(sbi->update_file)) return PTR_ERR(sbi->update_file); hypfs_update_update(sb); sb->s_root = root_dentry; pr_info("Hypervisor filesystem mounted\n"); return 0; err_tree: hypfs_delete_tree(root_dentry); d_genocide(root_dentry); dput(root_dentry); err_alloc: kfree(sbi); return rc; } static int hypfs_get_super(struct file_system_type *fst, int flags, Loading @@ -340,12 +324,12 @@ static void hypfs_kill_super(struct super_block *sb) { struct hypfs_sb_info *sb_info = sb->s_fs_info; if (sb->s_root) { if (sb->s_root) hypfs_delete_tree(sb->s_root); if (sb_info->update_file) hypfs_remove(sb_info->update_file); kfree(sb->s_fs_info); sb->s_fs_info = NULL; } kill_litter_super(sb); } Loading