Lines Matching refs:sb
75 static int nilfs_setup_super(struct super_block *sb, int is_mount);
76 static int nilfs_remount(struct super_block *sb, int *flags, char *data);
78 static void nilfs_set_error(struct super_block *sb) in nilfs_set_error() argument
80 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_set_error()
86 sbp = nilfs_prepare_super(sb, 0); in nilfs_set_error()
91 nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL); in nilfs_set_error()
109 void nilfs_error(struct super_block *sb, const char *function, in nilfs_error() argument
112 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_error()
122 sb->s_id, function, &vaf); in nilfs_error()
126 if (!(sb->s_flags & MS_RDONLY)) { in nilfs_error()
127 nilfs_set_error(sb); in nilfs_error()
131 sb->s_flags |= MS_RDONLY; in nilfs_error()
137 sb->s_id); in nilfs_error()
140 void nilfs_warning(struct super_block *sb, const char *function, in nilfs_warning() argument
152 sb->s_id, function, &vaf); in nilfs_warning()
158 struct inode *nilfs_alloc_inode(struct super_block *sb) in nilfs_alloc_inode() argument
190 static int nilfs_sync_super(struct super_block *sb, int flag) in nilfs_sync_super() argument
192 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_sync_super()
264 struct nilfs_super_block **nilfs_prepare_super(struct super_block *sb, in nilfs_prepare_super() argument
267 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_prepare_super()
277 sb->s_id); in nilfs_prepare_super()
291 int nilfs_commit_super(struct super_block *sb, int flag) in nilfs_commit_super() argument
293 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_commit_super()
316 return nilfs_sync_super(sb, flag); in nilfs_commit_super()
327 int nilfs_cleanup_super(struct super_block *sb) in nilfs_cleanup_super() argument
329 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_cleanup_super()
334 sbp = nilfs_prepare_super(sb, 0); in nilfs_cleanup_super()
347 ret = nilfs_commit_super(sb, flag); in nilfs_cleanup_super()
357 static int nilfs_move_2nd_super(struct super_block *sb, loff_t sb2off) in nilfs_move_2nd_super() argument
359 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_move_2nd_super()
385 nsbh = sb_getblk(sb, newblocknr); in nilfs_move_2nd_super()
417 int nilfs_resize_fs(struct super_block *sb, __u64 newsize) in nilfs_resize_fs() argument
419 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_resize_fs()
426 devsize = i_size_read(sb->s_bdev->bd_inode); in nilfs_resize_fs()
446 ret = nilfs_construct_segment(sb); in nilfs_resize_fs()
451 nilfs_move_2nd_super(sb, sb2off); in nilfs_resize_fs()
453 sbp = nilfs_prepare_super(sb, 0); in nilfs_resize_fs()
467 ret = nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL); in nilfs_resize_fs()
483 static void nilfs_put_super(struct super_block *sb) in nilfs_put_super() argument
485 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_put_super()
487 nilfs_detach_log_writer(sb); in nilfs_put_super()
489 if (!(sb->s_flags & MS_RDONLY)) { in nilfs_put_super()
491 nilfs_cleanup_super(sb); in nilfs_put_super()
500 sb->s_fs_info = NULL; in nilfs_put_super()
503 static int nilfs_sync_fs(struct super_block *sb, int wait) in nilfs_sync_fs() argument
505 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_sync_fs()
511 err = nilfs_construct_segment(sb); in nilfs_sync_fs()
515 sbp = nilfs_prepare_super(sb, nilfs_sb_will_flip(nilfs)); in nilfs_sync_fs()
518 nilfs_commit_super(sb, NILFS_SB_COMMIT); in nilfs_sync_fs()
529 int nilfs_attach_checkpoint(struct super_block *sb, __u64 cno, int curr_mnt, in nilfs_attach_checkpoint() argument
532 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_attach_checkpoint()
561 err = nilfs_ifile_read(sb, root, nilfs->ns_inode_size, in nilfs_attach_checkpoint()
585 static int nilfs_freeze(struct super_block *sb) in nilfs_freeze() argument
587 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_freeze()
590 if (sb->s_flags & MS_RDONLY) in nilfs_freeze()
595 err = nilfs_cleanup_super(sb); in nilfs_freeze()
600 static int nilfs_unfreeze(struct super_block *sb) in nilfs_unfreeze() argument
602 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_unfreeze()
604 if (sb->s_flags & MS_RDONLY) in nilfs_unfreeze()
608 nilfs_setup_super(sb, false); in nilfs_unfreeze()
615 struct super_block *sb = dentry->d_sb; in nilfs_statfs() local
618 u64 id = huge_encode_dev(sb->s_bdev->bd_dev); in nilfs_statfs()
669 buf->f_bsize = sb->s_blocksize; in nilfs_statfs()
685 struct super_block *sb = dentry->d_sb; in nilfs_show_options() local
686 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_show_options()
741 static int parse_options(char *options, struct super_block *sb, int is_remount) in parse_options() argument
743 struct the_nilfs *nilfs = sb->s_fs_info; in parse_options()
809 nilfs_set_default_options(struct super_block *sb, in nilfs_set_default_options() argument
812 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_set_default_options()
818 static int nilfs_setup_super(struct super_block *sb, int is_mount) in nilfs_setup_super() argument
820 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_setup_super()
826 sbp = nilfs_prepare_super(sb, 0); in nilfs_setup_super()
857 return nilfs_commit_super(sb, NILFS_SB_COMMIT_ALL); in nilfs_setup_super()
860 struct nilfs_super_block *nilfs_read_super_block(struct super_block *sb, in nilfs_read_super_block() argument
868 *pbh = sb_bread(sb, sb_index); in nilfs_read_super_block()
874 int nilfs_store_magic_and_option(struct super_block *sb, in nilfs_store_magic_and_option() argument
878 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_store_magic_and_option()
880 sb->s_magic = le16_to_cpu(sbp->s_magic); in nilfs_store_magic_and_option()
884 sb->s_flags |= MS_NOATIME; in nilfs_store_magic_and_option()
887 nilfs_set_default_options(sb, sbp); in nilfs_store_magic_and_option()
894 return !parse_options(data, sb, 0) ? -EINVAL : 0 ; in nilfs_store_magic_and_option()
897 int nilfs_check_feature_compatibility(struct super_block *sb, in nilfs_check_feature_compatibility() argument
912 if (!(sb->s_flags & MS_RDONLY) && features) { in nilfs_check_feature_compatibility()
921 static int nilfs_get_root_dentry(struct super_block *sb, in nilfs_get_root_dentry() argument
929 inode = nilfs_iget(sb, root, NILFS_ROOT_INO); in nilfs_get_root_dentry()
1018 int nilfs_checkpoint_is_mounted(struct super_block *sb, __u64 cno) in nilfs_checkpoint_is_mounted() argument
1020 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_checkpoint_is_mounted()
1035 inode = nilfs_ilookup(sb, root, NILFS_ROOT_INO); in nilfs_checkpoint_is_mounted()
1059 nilfs_fill_super(struct super_block *sb, void *data, int silent) in nilfs_fill_super() argument
1066 nilfs = alloc_nilfs(sb->s_bdev); in nilfs_fill_super()
1070 sb->s_fs_info = nilfs; in nilfs_fill_super()
1072 err = init_nilfs(nilfs, sb, (char *)data); in nilfs_fill_super()
1076 sb->s_op = &nilfs_sops; in nilfs_fill_super()
1077 sb->s_export_op = &nilfs_export_ops; in nilfs_fill_super()
1078 sb->s_root = NULL; in nilfs_fill_super()
1079 sb->s_time_gran = 1; in nilfs_fill_super()
1080 sb->s_max_links = NILFS_LINK_MAX; in nilfs_fill_super()
1082 sb->s_bdi = &bdev_get_queue(sb->s_bdev)->backing_dev_info; in nilfs_fill_super()
1084 err = load_nilfs(nilfs, sb); in nilfs_fill_super()
1089 err = nilfs_attach_checkpoint(sb, cno, true, &fsroot); in nilfs_fill_super()
1096 if (!(sb->s_flags & MS_RDONLY)) { in nilfs_fill_super()
1097 err = nilfs_attach_log_writer(sb, fsroot); in nilfs_fill_super()
1102 err = nilfs_get_root_dentry(sb, fsroot, &sb->s_root); in nilfs_fill_super()
1108 if (!(sb->s_flags & MS_RDONLY)) { in nilfs_fill_super()
1110 nilfs_setup_super(sb, true); in nilfs_fill_super()
1117 nilfs_detach_log_writer(sb); in nilfs_fill_super()
1132 static int nilfs_remount(struct super_block *sb, int *flags, char *data) in nilfs_remount() argument
1134 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_remount()
1139 sync_filesystem(sb); in nilfs_remount()
1140 old_sb_flags = sb->s_flags; in nilfs_remount()
1143 if (!parse_options(data, sb, 1)) { in nilfs_remount()
1147 sb->s_flags = (sb->s_flags & ~MS_POSIXACL); in nilfs_remount()
1154 "incomplete recovery state.\n", sb->s_id); in nilfs_remount()
1158 if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) in nilfs_remount()
1162 nilfs_detach_log_writer(sb); in nilfs_remount()
1163 sb->s_flags |= MS_RDONLY; in nilfs_remount()
1170 nilfs_cleanup_super(sb); in nilfs_remount()
1189 sb->s_id, (unsigned long long)features); in nilfs_remount()
1194 sb->s_flags &= ~MS_RDONLY; in nilfs_remount()
1196 root = NILFS_I(d_inode(sb->s_root))->i_root; in nilfs_remount()
1197 err = nilfs_attach_log_writer(sb, root); in nilfs_remount()
1202 nilfs_setup_super(sb, true); in nilfs_remount()
1209 sb->s_flags = old_sb_flags; in nilfs_remount()