Lines Matching refs:sb
63 static int nilfs_setup_super(struct super_block *sb, int is_mount);
65 void __nilfs_msg(struct super_block *sb, const char *fmt, ...)
77 if (sb)
79 KERN_SOH_ASCII, level, sb->s_id, &vaf);
87 static void nilfs_set_error(struct super_block *sb)
89 struct the_nilfs *nilfs = sb->s_fs_info;
95 sbp = nilfs_prepare_super(sb, 0);
100 nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL);
108 * @sb: super block instance
123 void __nilfs_error(struct super_block *sb, const char *function,
126 struct the_nilfs *nilfs = sb->s_fs_info;
136 sb->s_id, function, &vaf);
140 if (!sb_rdonly(sb)) {
141 nilfs_set_error(sb);
145 sb->s_flags |= SB_RDONLY;
151 sb->s_id);
154 struct inode *nilfs_alloc_inode(struct super_block *sb)
158 ii = alloc_inode_sb(sb, nilfs_inode_cachep, GFP_NOFS);
178 static int nilfs_sync_super(struct super_block *sb, int flag)
180 struct the_nilfs *nilfs = sb->s_fs_info;
193 nilfs_err(sb, "unable to write superblock: err=%d", err);
251 struct nilfs_super_block **nilfs_prepare_super(struct super_block *sb,
254 struct the_nilfs *nilfs = sb->s_fs_info;
263 nilfs_crit(sb, "superblock broke");
277 int nilfs_commit_super(struct super_block *sb, int flag)
279 struct the_nilfs *nilfs = sb->s_fs_info;
302 return nilfs_sync_super(sb, flag);
307 * @sb: super block instance to be unmounted or degraded to read-only
315 int nilfs_cleanup_super(struct super_block *sb)
317 struct the_nilfs *nilfs = sb->s_fs_info;
322 sbp = nilfs_prepare_super(sb, 0);
335 ret = nilfs_commit_super(sb, flag);
342 * @sb: super block instance
347 static int nilfs_move_2nd_super(struct super_block *sb, loff_t sb2off)
349 struct the_nilfs *nilfs = sb->s_fs_info;
375 nsbh = sb_getblk(sb, newblocknr);
377 nilfs_warn(sb,
425 * @sb: super block instance
430 int nilfs_resize_fs(struct super_block *sb, __u64 newsize)
432 struct the_nilfs *nilfs = sb->s_fs_info;
439 devsize = bdev_nr_bytes(sb->s_bdev);
468 ret = nilfs_construct_segment(sb);
473 nilfs_move_2nd_super(sb, sb2off);
475 sbp = nilfs_prepare_super(sb, 0);
489 ret = nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL);
505 static void nilfs_put_super(struct super_block *sb)
507 struct the_nilfs *nilfs = sb->s_fs_info;
509 nilfs_detach_log_writer(sb);
511 if (!sb_rdonly(sb)) {
513 nilfs_cleanup_super(sb);
523 sb->s_fs_info = NULL;
526 static int nilfs_sync_fs(struct super_block *sb, int wait)
528 struct the_nilfs *nilfs = sb->s_fs_info;
534 err = nilfs_construct_segment(sb);
538 sbp = nilfs_prepare_super(sb, nilfs_sb_will_flip(nilfs));
541 nilfs_commit_super(sb, NILFS_SB_COMMIT);
552 int nilfs_attach_checkpoint(struct super_block *sb, __u64 cno, int curr_mnt,
555 struct the_nilfs *nilfs = sb->s_fs_info;
568 err = nilfs_ifile_read(sb, root, cno, nilfs->ns_inode_size);
579 nilfs_err(sb, "Invalid checkpoint (checkpoint number=%llu)",
586 static int nilfs_freeze(struct super_block *sb)
588 struct the_nilfs *nilfs = sb->s_fs_info;
591 if (sb_rdonly(sb))
596 err = nilfs_cleanup_super(sb);
601 static int nilfs_unfreeze(struct super_block *sb)
603 struct the_nilfs *nilfs = sb->s_fs_info;
605 if (sb_rdonly(sb))
609 nilfs_setup_super(sb, false);
616 struct super_block *sb = dentry->d_sb;
619 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
652 nilfs_warn(sb, "failed to count free inodes: err=%d", err);
668 buf->f_bsize = sb->s_blocksize;
683 struct super_block *sb = dentry->d_sb;
684 struct the_nilfs *nilfs = sb->s_fs_info;
779 struct super_block *sb = fc->root->d_sb;
781 nilfs_err(sb,
809 static int nilfs_setup_super(struct super_block *sb, int is_mount)
811 struct the_nilfs *nilfs = sb->s_fs_info;
817 sbp = nilfs_prepare_super(sb, 0);
828 nilfs_warn(sb, "mounting fs with errors");
831 nilfs_warn(sb, "maximal mount count reached");
846 return nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL);
849 struct nilfs_super_block *nilfs_read_super_block(struct super_block *sb,
857 *pbh = sb_bread(sb, sb_index);
863 int nilfs_store_magic(struct super_block *sb,
866 struct the_nilfs *nilfs = sb->s_fs_info;
868 sb->s_magic = le16_to_cpu(sbp->s_magic);
872 sb->s_flags |= SB_NOATIME;
883 int nilfs_check_feature_compatibility(struct super_block *sb,
891 nilfs_err(sb,
898 if (!sb_rdonly(sb) && features) {
899 nilfs_err(sb,
907 static int nilfs_get_root_dentry(struct super_block *sb,
915 inode = nilfs_iget(sb, root, NILFS_ROOT_INO);
918 nilfs_err(sb, "error %d getting root inode", ret);
923 nilfs_err(sb, "corrupt root inode");
951 nilfs_err(sb, "error %d getting root dentry", ret);
1004 int nilfs_checkpoint_is_mounted(struct super_block *sb, __u64 cno)
1006 struct the_nilfs *nilfs = sb->s_fs_info;
1021 inode = nilfs_ilookup(sb, root, NILFS_ROOT_INO);
1037 * @sb: super_block
1046 nilfs_fill_super(struct super_block *sb, struct fs_context *fc)
1054 nilfs = alloc_nilfs(sb);
1058 sb->s_fs_info = nilfs;
1060 err = init_nilfs(nilfs, sb);
1067 sb->s_op = &nilfs_sops;
1068 sb->s_export_op = &nilfs_export_ops;
1069 sb->s_root = NULL;
1070 sb->s_time_gran = 1;
1071 sb->s_max_links = NILFS_LINK_MAX;
1073 sb->s_bdi = bdi_get(sb->s_bdev->bd_disk->bdi);
1075 err = load_nilfs(nilfs, sb);
1079 super_set_uuid(sb, nilfs->ns_sbp[0]->s_uuid,
1081 super_set_sysfs_name_bdev(sb);
1084 err = nilfs_attach_checkpoint(sb, cno, true, &fsroot);
1086 nilfs_err(sb,
1092 if (!sb_rdonly(sb)) {
1093 err = nilfs_attach_log_writer(sb, fsroot);
1098 err = nilfs_get_root_dentry(sb, fsroot, &sb->s_root);
1104 if (!sb_rdonly(sb)) {
1106 nilfs_setup_super(sb, true);
1113 nilfs_detach_log_writer(sb);
1132 struct super_block *sb = fc->root->d_sb;
1133 struct the_nilfs *nilfs = sb->s_fs_info;
1136 sync_filesystem(sb);
1141 nilfs_warn(sb,
1145 if ((bool)(fc->sb_flags & SB_RDONLY) == sb_rdonly(sb))
1148 sb->s_flags |= SB_RDONLY;
1155 nilfs_cleanup_super(sb);
1171 nilfs_warn(sb,
1178 sb->s_flags &= ~SB_RDONLY;
1180 root = NILFS_I(d_inode(sb->s_root))->i_root;
1181 err = nilfs_attach_log_writer(sb, root);
1183 sb->s_flags |= SB_RDONLY;
1188 nilfs_setup_super(sb, true);
1192 sb->s_flags = (sb->s_flags & ~SB_POSIXACL);
1245 * tree is not mounted and only snapshots use this sb.