Lines Matching refs:sb
22 static int kernfs_sop_remount_fs(struct super_block *sb, int *flags, char *data) in kernfs_sop_remount_fs() argument
24 struct kernfs_root *root = kernfs_info(sb)->root; in kernfs_sop_remount_fs()
58 struct kernfs_root *kernfs_root_from_sb(struct super_block *sb) in kernfs_root_from_sb() argument
60 if (sb->s_op == &kernfs_sops) in kernfs_root_from_sb()
61 return kernfs_info(sb)->root; in kernfs_root_from_sb()
65 static int kernfs_fill_super(struct super_block *sb, unsigned long magic) in kernfs_fill_super() argument
67 struct kernfs_super_info *info = kernfs_info(sb); in kernfs_fill_super()
71 info->sb = sb; in kernfs_fill_super()
72 sb->s_blocksize = PAGE_CACHE_SIZE; in kernfs_fill_super()
73 sb->s_blocksize_bits = PAGE_CACHE_SHIFT; in kernfs_fill_super()
74 sb->s_magic = magic; in kernfs_fill_super()
75 sb->s_op = &kernfs_sops; in kernfs_fill_super()
76 sb->s_time_gran = 1; in kernfs_fill_super()
80 inode = kernfs_get_inode(sb, info->root->kn); in kernfs_fill_super()
95 sb->s_root = root; in kernfs_fill_super()
96 sb->s_d_op = &kernfs_dops; in kernfs_fill_super()
100 static int kernfs_test_super(struct super_block *sb, void *data) in kernfs_test_super() argument
102 struct kernfs_super_info *sb_info = kernfs_info(sb); in kernfs_test_super()
108 static int kernfs_set_super(struct super_block *sb, void *data) in kernfs_set_super() argument
111 error = set_anon_super(sb, data); in kernfs_set_super()
113 sb->s_fs_info = data; in kernfs_set_super()
123 const void *kernfs_super_ns(struct super_block *sb) in kernfs_super_ns() argument
125 struct kernfs_super_info *info = kernfs_info(sb); in kernfs_super_ns()
150 struct super_block *sb; in kernfs_mount_ns() local
161 sb = sget(fs_type, kernfs_test_super, kernfs_set_super, flags, info); in kernfs_mount_ns()
162 if (IS_ERR(sb) || sb->s_fs_info != info) in kernfs_mount_ns()
164 if (IS_ERR(sb)) in kernfs_mount_ns()
165 return ERR_CAST(sb); in kernfs_mount_ns()
168 *new_sb_created = !sb->s_root; in kernfs_mount_ns()
170 if (!sb->s_root) { in kernfs_mount_ns()
171 struct kernfs_super_info *info = kernfs_info(sb); in kernfs_mount_ns()
173 error = kernfs_fill_super(sb, magic); in kernfs_mount_ns()
175 deactivate_locked_super(sb); in kernfs_mount_ns()
178 sb->s_flags |= MS_ACTIVE; in kernfs_mount_ns()
185 return dget(sb->s_root); in kernfs_mount_ns()
196 void kernfs_kill_sb(struct super_block *sb) in kernfs_kill_sb() argument
198 struct kernfs_super_info *info = kernfs_info(sb); in kernfs_kill_sb()
199 struct kernfs_node *root_kn = sb->s_root->d_fsdata; in kernfs_kill_sb()
209 kill_anon_super(sb); in kernfs_kill_sb()
229 struct super_block *sb = NULL; in kernfs_pin_sb() local
234 sb = info->sb; in kernfs_pin_sb()
235 if (!atomic_inc_not_zero(&info->sb->s_active)) in kernfs_pin_sb()
236 sb = ERR_PTR(-EINVAL); in kernfs_pin_sb()
241 return sb; in kernfs_pin_sb()