Lines Matching refs:nilfs

90 	struct the_nilfs *nilfs = sb->s_fs_info;  in nilfs_set_error()  local
93 down_write(&nilfs->ns_sem); in nilfs_set_error()
94 if (!(nilfs->ns_mount_state & NILFS_ERROR_FS)) { in nilfs_set_error()
95 nilfs->ns_mount_state |= NILFS_ERROR_FS; in nilfs_set_error()
104 up_write(&nilfs->ns_sem); in nilfs_set_error()
123 struct the_nilfs *nilfs = sb->s_fs_info; in __nilfs_error() local
140 if (nilfs_test_opt(nilfs, ERRORS_RO)) { in __nilfs_error()
146 if (nilfs_test_opt(nilfs, ERRORS_PANIC)) in __nilfs_error()
176 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_sync_super() local
180 set_buffer_dirty(nilfs->ns_sbh[0]); in nilfs_sync_super()
181 if (nilfs_test_opt(nilfs, BARRIER)) { in nilfs_sync_super()
182 err = __sync_dirty_buffer(nilfs->ns_sbh[0], in nilfs_sync_super()
185 err = sync_dirty_buffer(nilfs->ns_sbh[0]); in nilfs_sync_super()
190 if (err == -EIO && nilfs->ns_sbh[1]) { in nilfs_sync_super()
195 memcpy(nilfs->ns_sbp[1], nilfs->ns_sbp[0], in nilfs_sync_super()
196 nilfs->ns_sbsize); in nilfs_sync_super()
197 nilfs_fall_back_super_block(nilfs); in nilfs_sync_super()
201 struct nilfs_super_block *sbp = nilfs->ns_sbp[0]; in nilfs_sync_super()
203 nilfs->ns_sbwcount++; in nilfs_sync_super()
209 clear_nilfs_discontinued(nilfs); in nilfs_sync_super()
212 if (nilfs->ns_sbh[1]) { in nilfs_sync_super()
214 set_buffer_dirty(nilfs->ns_sbh[1]); in nilfs_sync_super()
215 if (sync_dirty_buffer(nilfs->ns_sbh[1]) < 0) in nilfs_sync_super()
218 if (le64_to_cpu(nilfs->ns_sbp[1]->s_last_cno) < in nilfs_sync_super()
219 le64_to_cpu(nilfs->ns_sbp[0]->s_last_cno)) in nilfs_sync_super()
220 sbp = nilfs->ns_sbp[1]; in nilfs_sync_super()
223 spin_lock(&nilfs->ns_last_segment_lock); in nilfs_sync_super()
224 nilfs->ns_prot_seq = le64_to_cpu(sbp->s_last_seq); in nilfs_sync_super()
225 spin_unlock(&nilfs->ns_last_segment_lock); in nilfs_sync_super()
232 struct the_nilfs *nilfs) in nilfs_set_log_cursor() argument
237 nilfs_count_free_blocks(nilfs, &nfreeblocks); in nilfs_set_log_cursor()
240 spin_lock(&nilfs->ns_last_segment_lock); in nilfs_set_log_cursor()
241 sbp->s_last_seq = cpu_to_le64(nilfs->ns_last_seq); in nilfs_set_log_cursor()
242 sbp->s_last_pseg = cpu_to_le64(nilfs->ns_last_pseg); in nilfs_set_log_cursor()
243 sbp->s_last_cno = cpu_to_le64(nilfs->ns_last_cno); in nilfs_set_log_cursor()
244 spin_unlock(&nilfs->ns_last_segment_lock); in nilfs_set_log_cursor()
250 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_prepare_super() local
251 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_prepare_super()
257 memcpy(sbp[0], sbp[1], nilfs->ns_sbsize); in nilfs_prepare_super()
264 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize); in nilfs_prepare_super()
268 nilfs_swap_super_block(nilfs); in nilfs_prepare_super()
275 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_commit_super() local
276 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_commit_super()
281 nilfs->ns_sbwtime = t; in nilfs_commit_super()
284 sbp[0]->s_sum = cpu_to_le32(crc32_le(nilfs->ns_crc_seed, in nilfs_commit_super()
286 nilfs->ns_sbsize)); in nilfs_commit_super()
290 sbp[1]->s_sum = cpu_to_le32(crc32_le(nilfs->ns_crc_seed, in nilfs_commit_super()
292 nilfs->ns_sbsize)); in nilfs_commit_super()
294 clear_nilfs_sb_dirty(nilfs); in nilfs_commit_super()
295 nilfs->ns_flushed_device = 1; in nilfs_commit_super()
311 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_cleanup_super() local
318 sbp[0]->s_state = cpu_to_le16(nilfs->ns_mount_state); in nilfs_cleanup_super()
319 nilfs_set_log_cursor(sbp[0], nilfs); in nilfs_cleanup_super()
341 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_move_2nd_super() local
350 if (nilfs->ns_sbh[1] && in nilfs_move_2nd_super()
351 nilfs->ns_sbh[1]->b_blocknr > nilfs->ns_first_data_block) { in nilfs_move_2nd_super()
353 blocknr = nilfs->ns_sbh[1]->b_blocknr; in nilfs_move_2nd_super()
354 } else if (nilfs->ns_sbh[0]->b_blocknr > nilfs->ns_first_data_block) { in nilfs_move_2nd_super()
356 blocknr = nilfs->ns_sbh[0]->b_blocknr; in nilfs_move_2nd_super()
361 if (sb2i >= 0 && (u64)blocknr << nilfs->ns_blocksize_bits == sb2off) in nilfs_move_2nd_super()
365 newblocknr = sb2off >> nilfs->ns_blocksize_bits; in nilfs_move_2nd_super()
366 offset = sb2off & (nilfs->ns_blocksize - 1); in nilfs_move_2nd_super()
385 memcpy(nsbp, nilfs->ns_sbp[sb2i], nilfs->ns_sbsize); in nilfs_move_2nd_super()
392 memset((void *)nsbp + nilfs->ns_sbsize, 0, in nilfs_move_2nd_super()
393 nsbh->b_size - offset - nilfs->ns_sbsize); in nilfs_move_2nd_super()
401 brelse(nilfs->ns_sbh[sb2i]); in nilfs_move_2nd_super()
402 nilfs->ns_sbh[sb2i] = nsbh; in nilfs_move_2nd_super()
403 nilfs->ns_sbp[sb2i] = nsbp; in nilfs_move_2nd_super()
404 } else if (nilfs->ns_sbh[0]->b_blocknr < nilfs->ns_first_data_block) { in nilfs_move_2nd_super()
406 nilfs->ns_sbh[1] = nsbh; in nilfs_move_2nd_super()
407 nilfs->ns_sbp[1] = nsbp; in nilfs_move_2nd_super()
422 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_resize_fs() local
447 down_write(&nilfs->ns_segctor_sem); in nilfs_resize_fs()
450 newnsegs = sb2off >> nilfs->ns_blocksize_bits; in nilfs_resize_fs()
451 do_div(newnsegs, nilfs->ns_blocks_per_segment); in nilfs_resize_fs()
453 ret = nilfs_sufile_resize(nilfs->ns_sufile, newnsegs); in nilfs_resize_fs()
454 up_write(&nilfs->ns_segctor_sem); in nilfs_resize_fs()
462 down_write(&nilfs->ns_sem); in nilfs_resize_fs()
467 nilfs_set_log_cursor(sbp[0], nilfs); in nilfs_resize_fs()
476 sbp[0]->s_nsegments = cpu_to_le64(nilfs->ns_nsegments); in nilfs_resize_fs()
478 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize); in nilfs_resize_fs()
481 up_write(&nilfs->ns_sem); in nilfs_resize_fs()
490 nilfs_sufile_set_alloc_range(nilfs->ns_sufile, 0, newnsegs - 1); in nilfs_resize_fs()
497 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_put_super() local
502 down_write(&nilfs->ns_sem); in nilfs_put_super()
504 up_write(&nilfs->ns_sem); in nilfs_put_super()
507 nilfs_sysfs_delete_device_group(nilfs); in nilfs_put_super()
508 iput(nilfs->ns_sufile); in nilfs_put_super()
509 iput(nilfs->ns_cpfile); in nilfs_put_super()
510 iput(nilfs->ns_dat); in nilfs_put_super()
512 destroy_nilfs(nilfs); in nilfs_put_super()
518 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_sync_fs() local
526 down_write(&nilfs->ns_sem); in nilfs_sync_fs()
527 if (nilfs_sb_dirty(nilfs)) { in nilfs_sync_fs()
528 sbp = nilfs_prepare_super(sb, nilfs_sb_will_flip(nilfs)); in nilfs_sync_fs()
530 nilfs_set_log_cursor(sbp[0], nilfs); in nilfs_sync_fs()
534 up_write(&nilfs->ns_sem); in nilfs_sync_fs()
537 err = nilfs_flush_device(nilfs); in nilfs_sync_fs()
545 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_attach_checkpoint() local
552 nilfs, curr_mnt ? NILFS_CPTREE_CURRENT_CNO : cno); in nilfs_attach_checkpoint()
559 down_read(&nilfs->ns_segctor_sem); in nilfs_attach_checkpoint()
560 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, cno, 0, &raw_cp, in nilfs_attach_checkpoint()
562 up_read(&nilfs->ns_segctor_sem); in nilfs_attach_checkpoint()
573 err = nilfs_ifile_read(sb, root, nilfs->ns_inode_size, in nilfs_attach_checkpoint()
583 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, cno, bh_cp); in nilfs_attach_checkpoint()
590 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, cno, bh_cp); in nilfs_attach_checkpoint()
599 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_freeze() local
606 down_write(&nilfs->ns_sem); in nilfs_freeze()
608 up_write(&nilfs->ns_sem); in nilfs_freeze()
614 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_unfreeze() local
619 down_write(&nilfs->ns_sem); in nilfs_unfreeze()
621 up_write(&nilfs->ns_sem); in nilfs_unfreeze()
629 struct the_nilfs *nilfs = root->nilfs; in nilfs_statfs() local
644 blocks = nilfs->ns_blocks_per_segment * nilfs->ns_nsegments in nilfs_statfs()
645 - nilfs->ns_first_data_block; in nilfs_statfs()
646 nrsvblocks = nilfs->ns_nrsvsegs * nilfs->ns_blocks_per_segment; in nilfs_statfs()
656 err = nilfs_count_free_blocks(nilfs, &nfreeblocks); in nilfs_statfs()
695 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_show_options() local
698 if (!nilfs_test_opt(nilfs, BARRIER)) in nilfs_show_options()
702 if (nilfs_test_opt(nilfs, ERRORS_PANIC)) in nilfs_show_options()
704 if (nilfs_test_opt(nilfs, ERRORS_CONT)) in nilfs_show_options()
706 if (nilfs_test_opt(nilfs, STRICT_ORDER)) in nilfs_show_options()
708 if (nilfs_test_opt(nilfs, NORECOVERY)) in nilfs_show_options()
710 if (nilfs_test_opt(nilfs, DISCARD)) in nilfs_show_options()
752 struct the_nilfs *nilfs = sb->s_fs_info; in parse_options() local
768 nilfs_set_opt(nilfs, BARRIER); in parse_options()
771 nilfs_clear_opt(nilfs, BARRIER); in parse_options()
776 nilfs_clear_opt(nilfs, STRICT_ORDER); in parse_options()
779 nilfs_set_opt(nilfs, STRICT_ORDER); in parse_options()
784 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_PANIC); in parse_options()
787 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_RO); in parse_options()
790 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_CONT); in parse_options()
801 nilfs_set_opt(nilfs, NORECOVERY); in parse_options()
804 nilfs_set_opt(nilfs, DISCARD); in parse_options()
807 nilfs_clear_opt(nilfs, DISCARD); in parse_options()
821 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_set_default_options() local
823 nilfs->ns_mount_opt = in nilfs_set_default_options()
829 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_setup_super() local
845 if (nilfs->ns_mount_state & NILFS_ERROR_FS) { in nilfs_setup_super()
863 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize); in nilfs_setup_super()
885 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_store_magic_and_option() local
896 nilfs->ns_resuid = le16_to_cpu(sbp->s_def_resuid); in nilfs_store_magic_and_option()
897 nilfs->ns_resgid = le16_to_cpu(sbp->s_def_resgid); in nilfs_store_magic_and_option()
898 nilfs->ns_interval = le32_to_cpu(sbp->s_c_interval); in nilfs_store_magic_and_option()
899 nilfs->ns_watermark = le32_to_cpu(sbp->s_c_block_max); in nilfs_store_magic_and_option()
979 struct the_nilfs *nilfs = s->s_fs_info; in nilfs_attach_snapshot() local
983 mutex_lock(&nilfs->ns_snapshot_mount_mutex); in nilfs_attach_snapshot()
985 down_read(&nilfs->ns_segctor_sem); in nilfs_attach_snapshot()
986 ret = nilfs_cpfile_is_snapshot(nilfs->ns_cpfile, cno); in nilfs_attach_snapshot()
987 up_read(&nilfs->ns_segctor_sem); in nilfs_attach_snapshot()
1009 mutex_unlock(&nilfs->ns_snapshot_mount_mutex); in nilfs_attach_snapshot()
1027 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_checkpoint_is_mounted() local
1033 if (cno > nilfs->ns_cno) in nilfs_checkpoint_is_mounted()
1036 if (cno >= nilfs_last_cno(nilfs)) in nilfs_checkpoint_is_mounted()
1040 root = nilfs_lookup_root(nilfs, cno); in nilfs_checkpoint_is_mounted()
1068 struct the_nilfs *nilfs; in nilfs_fill_super() local
1073 nilfs = alloc_nilfs(sb); in nilfs_fill_super()
1074 if (!nilfs) in nilfs_fill_super()
1077 sb->s_fs_info = nilfs; in nilfs_fill_super()
1079 err = init_nilfs(nilfs, sb, (char *)data); in nilfs_fill_super()
1091 err = load_nilfs(nilfs, sb); in nilfs_fill_super()
1095 cno = nilfs_last_cno(nilfs); in nilfs_fill_super()
1117 down_write(&nilfs->ns_sem); in nilfs_fill_super()
1119 up_write(&nilfs->ns_sem); in nilfs_fill_super()
1131 nilfs_sysfs_delete_device_group(nilfs); in nilfs_fill_super()
1132 iput(nilfs->ns_sufile); in nilfs_fill_super()
1133 iput(nilfs->ns_cpfile); in nilfs_fill_super()
1134 iput(nilfs->ns_dat); in nilfs_fill_super()
1137 destroy_nilfs(nilfs); in nilfs_fill_super()
1143 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_remount() local
1150 old_mount_opt = nilfs->ns_mount_opt; in nilfs_remount()
1160 if (!nilfs_valid_fs(nilfs)) { in nilfs_remount()
1175 down_write(&nilfs->ns_sem); in nilfs_remount()
1177 up_write(&nilfs->ns_sem); in nilfs_remount()
1187 down_read(&nilfs->ns_sem); in nilfs_remount()
1188 features = le64_to_cpu(nilfs->ns_sbp[0]->s_feature_compat_ro) & in nilfs_remount()
1190 up_read(&nilfs->ns_sem); in nilfs_remount()
1206 down_write(&nilfs->ns_sem); in nilfs_remount()
1208 up_write(&nilfs->ns_sem); in nilfs_remount()
1215 nilfs->ns_mount_opt = old_mount_opt; in nilfs_remount()