Lines Matching refs: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,
135 struct super_block *sb = inode->i_sb;
141 befs_debug(sb, "---> befs_get_block() for inode %lu, block %ld",
144 befs_error(sb, "befs_get_block() was asked to write to "
150 res = befs_fblock2brun(sb, ds, block, &run);
152 befs_error(sb,
159 disk_off = (ulong) iaddr2blockno(sb, &run);
163 befs_debug(sb, "<--- %s for inode %lu, block %ld, disk address %lu",
174 struct super_block *sb = dir->i_sb;
182 befs_debug(sb, "---> %s name %pd inode %ld", __func__,
186 if (BEFS_SB(sb)->nls) {
188 befs_nls2utf(sb, name, strlen(name), &utfname, &utfnamelen);
190 befs_debug(sb, "<--- %s ERROR", __func__);
193 ret = befs_btree_find(sb, ds, utfname, &offset);
197 ret = befs_btree_find(sb, ds, name, &offset);
201 befs_debug(sb, "<--- %s %pd not found", __func__, dentry);
204 befs_error(sb, "<--- %s Error", __func__);
209 befs_debug(sb, "<--- %s", __func__);
218 struct super_block *sb = inode->i_sb;
225 befs_debug(sb, "---> %s name %pD, inode %ld, ctx->pos %lld",
229 result = befs_btree_read(sb, ds, ctx->pos, BEFS_NAME_LEN + 1,
233 befs_debug(sb, "<--- %s ERROR", __func__);
234 befs_error(sb, "IO error reading %pD (inode %lu)",
239 befs_debug(sb, "<--- %s END", __func__);
243 befs_debug(sb, "<--- %s Empty directory", __func__);
248 if (BEFS_SB(sb)->nls) {
253 befs_utf2nls(sb, keybuf, keysize, &nlsname,
256 befs_debug(sb, "<--- %s ERROR", __func__);
275 befs_alloc_inode(struct super_block *sb)
279 bi = alloc_inode_sb(sb, befs_inode_cachep, GFP_KERNEL);
297 static struct inode *befs_iget(struct super_block *sb, unsigned long ino)
301 struct befs_sb_info *befs_sb = BEFS_SB(sb);
305 befs_debug(sb, "---> %s inode = %lu", __func__, ino);
307 inode = iget_locked(sb, ino);
316 befs_ino->i_inode_num = blockno2iaddr(sb, inode->i_ino);
318 befs_debug(sb, " real inode number [%u, %hu, %hu]",
322 bh = sb_bread(sb, inode->i_ino);
324 befs_error(sb, "unable to read inode block - "
331 befs_dump_inode(sb, raw_inode);
333 if (befs_check_inode(sb, raw_inode, inode->i_ino) != BEFS_OK) {
334 befs_error(sb, "Bad inode: %lu", inode->i_ino);
338 inode->i_mode = (umode_t) fs32_to_cpu(sb, raw_inode->mode);
347 make_kuid(&init_user_ns, fs32_to_cpu(sb, raw_inode->uid));
350 make_kgid(&init_user_ns, fs32_to_cpu(sb, raw_inode->gid));
364 fs64_to_cpu(sb, raw_inode->last_modified_time) >> 16;
369 befs_ino->i_inode_num = fsrun_to_cpu(sb, raw_inode->inode_num);
370 befs_ino->i_parent = fsrun_to_cpu(sb, raw_inode->parent);
371 befs_ino->i_attribute = fsrun_to_cpu(sb, raw_inode->attributes);
372 befs_ino->i_flags = fs32_to_cpu(sb, raw_inode->flags);
383 fsds_to_cpu(sb, &raw_inode->data.datastream);
385 num_blks = befs_count_blocks(sb, &befs_ino->i_data.ds);
408 befs_error(sb, "Inode %lu is not a regular file, "
415 befs_debug(sb, "<--- %s", __func__);
424 befs_debug(sb, "<--- %s - Bad inode", __func__);
473 struct super_block *sb = inode->i_sb;
480 befs_error(sb, "Long symlink with illegal length");
483 befs_debug(sb, "Follow long symlink");
485 if (befs_read_lsymlink(sb, data, link, len) != len) {
486 befs_error(sb, "Failed to read entire long symlink");
505 befs_utf2nls(struct super_block *sb, const char *in,
508 struct nls_table *nls = BEFS_SB(sb)->nls;
519 befs_debug(sb, "---> %s", __func__);
522 befs_error(sb, "%s called with no NLS table loaded", __func__);
547 befs_debug(sb, "<--- %s", __func__);
552 befs_error(sb, "Name using character set %s contains a character that "
554 befs_debug(sb, "<--- %s", __func__);
561 * @sb: Superblock
582 befs_nls2utf(struct super_block *sb, const char *in,
585 struct nls_table *nls = BEFS_SB(sb)->nls;
597 befs_debug(sb, "---> %s\n", __func__);
600 befs_error(sb, "%s called with no NLS table loaded.",
627 befs_debug(sb, "<--- %s", __func__);
632 befs_error(sb, "Name using character set %s contains a character that "
634 befs_debug(sb, "<--- %s", __func__);
639 static struct inode *befs_nfs_get_inode(struct super_block *sb, uint64_t ino,
643 return befs_iget(sb, ino);
649 static struct dentry *befs_fh_to_dentry(struct super_block *sb,
652 return generic_fh_to_dentry(sb, fid, fh_len, fh_type,
659 static struct dentry *befs_fh_to_parent(struct super_block *sb,
662 return generic_fh_to_parent(sb, fid, fh_len, fh_type,
792 befs_put_super(struct super_block *sb)
794 kfree(BEFS_SB(sb)->mount_opts.iocharset);
795 BEFS_SB(sb)->mount_opts.iocharset = NULL;
796 unload_nls(BEFS_SB(sb)->nls);
797 kfree(sb->s_fs_info);
798 sb->s_fs_info = NULL;
808 befs_fill_super(struct super_block *sb, void *data, int silent)
819 sb->s_fs_info = kzalloc(sizeof(*befs_sb), GFP_KERNEL);
820 if (sb->s_fs_info == NULL)
823 befs_sb = BEFS_SB(sb);
827 befs_error(sb, "cannot parse mount options");
831 befs_debug(sb, "---> %s", __func__);
833 if (!sb_rdonly(sb)) {
834 befs_warning(sb,
836 sb->s_flags |= SB_RDONLY;
847 blocksize = sb_min_blocksize(sb, 1024);
850 befs_error(sb, "unable to set blocksize");
854 bh = sb_bread(sb, sb_block);
857 befs_error(sb, "unable to read superblock");
865 befs_debug(sb, "Using PPC superblock location");
867 befs_debug(sb, "Using x86 superblock location");
872 if ((befs_load_sb(sb, disk_sb) != BEFS_OK) ||
873 (befs_check_sb(sb) != BEFS_OK))
876 befs_dump_super_block(sb, disk_sb);
882 befs_error(sb, "blocks count: %llu is larger than the host can use",
889 * Fill in kernel superblock fields from private sb
891 sb->s_magic = BEFS_SUPER_MAGIC;
893 sb_set_blocksize(sb, (ulong) befs_sb->block_size);
894 sb->s_op = &befs_sops;
895 sb->s_export_op = &befs_export_operations;
896 sb->s_time_min = 0;
897 sb->s_time_max = 0xffffffffffffll;
898 root = befs_iget(sb, iaddr2blockno(sb, &(befs_sb->root_dir)));
903 sb->s_root = d_make_root(root);
904 if (!sb->s_root) {
906 befs_error(sb, "get root inode failed");
912 befs_debug(sb, "Loading nls: %s",
916 befs_warning(sb, "Cannot load nls %s"
923 befs_debug(sb, "Loading default nls");
934 kfree(sb->s_fs_info);
935 sb->s_fs_info = NULL;
942 befs_remount(struct super_block *sb, int *flags, char *data)
944 sync_filesystem(sb);
953 struct super_block *sb = dentry->d_sb;
954 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
956 befs_debug(sb, "---> %s", __func__);
959 buf->f_bsize = sb->s_blocksize;
960 buf->f_blocks = BEFS_SB(sb)->num_blocks;
961 buf->f_bfree = BEFS_SB(sb)->num_blocks - BEFS_SB(sb)->used_blocks;
968 befs_debug(sb, "<--- %s", __func__);