Lines Matching full:sb
48 static struct inode *befs_alloc_inode(struct super_block *sb);
52 static int befs_utf2nls(struct super_block *sb, const char *in, int in_len,
54 static int befs_nls2utf(struct super_block *sb, const char *in, int in_len,
61 static struct dentry *befs_fh_to_dentry(struct super_block *sb,
63 static struct dentry *befs_fh_to_parent(struct super_block *sb,
136 struct super_block *sb = inode->i_sb; in befs_get_block() local
142 befs_debug(sb, "---> befs_get_block() for inode %lu, block %ld", in befs_get_block()
145 befs_error(sb, "befs_get_block() was asked to write to " in befs_get_block()
151 res = befs_fblock2brun(sb, ds, block, &run); in befs_get_block()
153 befs_error(sb, in befs_get_block()
160 disk_off = (ulong) iaddr2blockno(sb, &run); in befs_get_block()
164 befs_debug(sb, "<--- %s for inode %lu, block %ld, disk address %lu", in befs_get_block()
175 struct super_block *sb = dir->i_sb; in befs_lookup() local
183 befs_debug(sb, "---> %s name %pd inode %ld", __func__, in befs_lookup()
187 if (BEFS_SB(sb)->nls) { in befs_lookup()
189 befs_nls2utf(sb, name, strlen(name), &utfname, &utfnamelen); in befs_lookup()
191 befs_debug(sb, "<--- %s ERROR", __func__); in befs_lookup()
194 ret = befs_btree_find(sb, ds, utfname, &offset); in befs_lookup()
198 ret = befs_btree_find(sb, ds, name, &offset); in befs_lookup()
202 befs_debug(sb, "<--- %s %pd not found", __func__, dentry); in befs_lookup()
205 befs_error(sb, "<--- %s Error", __func__); in befs_lookup()
210 befs_debug(sb, "<--- %s", __func__); in befs_lookup()
219 struct super_block *sb = inode->i_sb; in befs_readdir() local
226 befs_debug(sb, "---> %s name %pD, inode %ld, ctx->pos %lld", in befs_readdir()
230 result = befs_btree_read(sb, ds, ctx->pos, BEFS_NAME_LEN + 1, in befs_readdir()
234 befs_debug(sb, "<--- %s ERROR", __func__); in befs_readdir()
235 befs_error(sb, "IO error reading %pD (inode %lu)", in befs_readdir()
240 befs_debug(sb, "<--- %s END", __func__); in befs_readdir()
244 befs_debug(sb, "<--- %s Empty directory", __func__); in befs_readdir()
249 if (BEFS_SB(sb)->nls) { in befs_readdir()
254 befs_utf2nls(sb, keybuf, keysize, &nlsname, in befs_readdir()
257 befs_debug(sb, "<--- %s ERROR", __func__); in befs_readdir()
276 befs_alloc_inode(struct super_block *sb) in befs_alloc_inode() argument
280 bi = alloc_inode_sb(sb, befs_inode_cachep, GFP_KERNEL); in befs_alloc_inode()
298 static struct inode *befs_iget(struct super_block *sb, unsigned long ino) in befs_iget() argument
302 struct befs_sb_info *befs_sb = BEFS_SB(sb); in befs_iget()
306 befs_debug(sb, "---> %s inode = %lu", __func__, ino); in befs_iget()
308 inode = iget_locked(sb, ino); in befs_iget()
317 befs_ino->i_inode_num = blockno2iaddr(sb, inode->i_ino); in befs_iget()
319 befs_debug(sb, " real inode number [%u, %hu, %hu]", in befs_iget()
323 bh = sb_bread(sb, inode->i_ino); in befs_iget()
325 befs_error(sb, "unable to read inode block - " in befs_iget()
332 befs_dump_inode(sb, raw_inode); in befs_iget()
334 if (befs_check_inode(sb, raw_inode, inode->i_ino) != BEFS_OK) { in befs_iget()
335 befs_error(sb, "Bad inode: %lu", inode->i_ino); in befs_iget()
339 inode->i_mode = (umode_t) fs32_to_cpu(sb, raw_inode->mode); in befs_iget()
348 make_kuid(&init_user_ns, fs32_to_cpu(sb, raw_inode->uid)); in befs_iget()
351 make_kgid(&init_user_ns, fs32_to_cpu(sb, raw_inode->gid)); in befs_iget()
365 fs64_to_cpu(sb, raw_inode->last_modified_time) >> 16, in befs_iget()
370 befs_ino->i_inode_num = fsrun_to_cpu(sb, raw_inode->inode_num); in befs_iget()
371 befs_ino->i_parent = fsrun_to_cpu(sb, raw_inode->parent); in befs_iget()
372 befs_ino->i_attribute = fsrun_to_cpu(sb, raw_inode->attributes); in befs_iget()
373 befs_ino->i_flags = fs32_to_cpu(sb, raw_inode->flags); in befs_iget()
384 fsds_to_cpu(sb, &raw_inode->data.datastream); in befs_iget()
386 num_blks = befs_count_blocks(sb, &befs_ino->i_data.ds); in befs_iget()
409 befs_error(sb, "Inode %lu is not a regular file, " in befs_iget()
416 befs_debug(sb, "<--- %s", __func__); in befs_iget()
425 befs_debug(sb, "<--- %s - Bad inode", __func__); in befs_iget()
474 struct super_block *sb = inode->i_sb; in befs_symlink_read_folio() local
481 befs_error(sb, "Long symlink with illegal length"); in befs_symlink_read_folio()
484 befs_debug(sb, "Follow long symlink"); in befs_symlink_read_folio()
486 if (befs_read_lsymlink(sb, data, link, len) != len) { in befs_symlink_read_folio()
487 befs_error(sb, "Failed to read entire long symlink"); in befs_symlink_read_folio()
506 befs_utf2nls(struct super_block *sb, const char *in, in befs_utf2nls() argument
509 struct nls_table *nls = BEFS_SB(sb)->nls; in befs_utf2nls()
520 befs_debug(sb, "---> %s", __func__); in befs_utf2nls()
523 befs_error(sb, "%s called with no NLS table loaded", __func__); in befs_utf2nls()
548 befs_debug(sb, "<--- %s", __func__); in befs_utf2nls()
553 befs_error(sb, "Name using character set %s contains a character that " in befs_utf2nls()
555 befs_debug(sb, "<--- %s", __func__); in befs_utf2nls()
562 * @sb: Superblock
583 befs_nls2utf(struct super_block *sb, const char *in, in befs_nls2utf() argument
586 struct nls_table *nls = BEFS_SB(sb)->nls; in befs_nls2utf()
598 befs_debug(sb, "---> %s\n", __func__); in befs_nls2utf()
601 befs_error(sb, "%s called with no NLS table loaded.", in befs_nls2utf()
628 befs_debug(sb, "<--- %s", __func__); in befs_nls2utf()
633 befs_error(sb, "Name using character set %s contains a character that " in befs_nls2utf()
635 befs_debug(sb, "<--- %s", __func__); in befs_nls2utf()
640 static struct inode *befs_nfs_get_inode(struct super_block *sb, uint64_t ino, in befs_nfs_get_inode() argument
644 return befs_iget(sb, ino); in befs_nfs_get_inode()
650 static struct dentry *befs_fh_to_dentry(struct super_block *sb, in befs_fh_to_dentry() argument
653 return generic_fh_to_dentry(sb, fid, fh_len, fh_type, in befs_fh_to_dentry()
660 static struct dentry *befs_fh_to_parent(struct super_block *sb, in befs_fh_to_parent() argument
663 return generic_fh_to_parent(sb, fid, fh_len, fh_type, in befs_fh_to_parent()
790 befs_put_super(struct super_block *sb) in befs_put_super() argument
792 kfree(BEFS_SB(sb)->mount_opts.iocharset); in befs_put_super()
793 BEFS_SB(sb)->mount_opts.iocharset = NULL; in befs_put_super()
794 unload_nls(BEFS_SB(sb)->nls); in befs_put_super()
795 kfree(sb->s_fs_info); in befs_put_super()
796 sb->s_fs_info = NULL; in befs_put_super()
806 befs_fill_super(struct super_block *sb, void *data, int silent) in befs_fill_super() argument
817 sb->s_fs_info = kzalloc(sizeof(*befs_sb), GFP_KERNEL); in befs_fill_super()
818 if (sb->s_fs_info == NULL) in befs_fill_super()
821 befs_sb = BEFS_SB(sb); in befs_fill_super()
825 befs_error(sb, "cannot parse mount options"); in befs_fill_super()
829 befs_debug(sb, "---> %s", __func__); in befs_fill_super()
831 if (!sb_rdonly(sb)) { in befs_fill_super()
832 befs_warning(sb, in befs_fill_super()
834 sb->s_flags |= SB_RDONLY; in befs_fill_super()
845 blocksize = sb_min_blocksize(sb, 1024); in befs_fill_super()
848 befs_error(sb, "unable to set blocksize"); in befs_fill_super()
852 bh = sb_bread(sb, sb_block); in befs_fill_super()
855 befs_error(sb, "unable to read superblock"); in befs_fill_super()
863 befs_debug(sb, "Using PPC superblock location"); in befs_fill_super()
865 befs_debug(sb, "Using x86 superblock location"); in befs_fill_super()
870 if ((befs_load_sb(sb, disk_sb) != BEFS_OK) || in befs_fill_super()
871 (befs_check_sb(sb) != BEFS_OK)) in befs_fill_super()
874 befs_dump_super_block(sb, disk_sb); in befs_fill_super()
880 befs_error(sb, "blocks count: %llu is larger than the host can use", in befs_fill_super()
887 * Fill in kernel superblock fields from private sb in befs_fill_super()
889 sb->s_magic = BEFS_SUPER_MAGIC; in befs_fill_super()
891 sb_set_blocksize(sb, (ulong) befs_sb->block_size); in befs_fill_super()
892 sb->s_op = &befs_sops; in befs_fill_super()
893 sb->s_export_op = &befs_export_operations; in befs_fill_super()
894 sb->s_time_min = 0; in befs_fill_super()
895 sb->s_time_max = 0xffffffffffffll; in befs_fill_super()
896 root = befs_iget(sb, iaddr2blockno(sb, &(befs_sb->root_dir))); in befs_fill_super()
901 sb->s_root = d_make_root(root); in befs_fill_super()
902 if (!sb->s_root) { in befs_fill_super()
904 befs_error(sb, "get root inode failed"); in befs_fill_super()
910 befs_debug(sb, "Loading nls: %s", in befs_fill_super()
914 befs_warning(sb, "Cannot load nls %s" in befs_fill_super()
921 befs_debug(sb, "Loading default nls"); in befs_fill_super()
932 kfree(sb->s_fs_info); in befs_fill_super()
933 sb->s_fs_info = NULL; in befs_fill_super()
940 befs_remount(struct super_block *sb, int *flags, char *data) in befs_remount() argument
942 sync_filesystem(sb); in befs_remount()
951 struct super_block *sb = dentry->d_sb; in befs_statfs() local
952 u64 id = huge_encode_dev(sb->s_bdev->bd_dev); in befs_statfs()
954 befs_debug(sb, "---> %s", __func__); in befs_statfs()
957 buf->f_bsize = sb->s_blocksize; in befs_statfs()
958 buf->f_blocks = BEFS_SB(sb)->num_blocks; in befs_statfs()
959 buf->f_bfree = BEFS_SB(sb)->num_blocks - BEFS_SB(sb)->used_blocks; in befs_statfs()
966 befs_debug(sb, "<--- %s", __func__); in befs_statfs()