Lines Matching defs:nilfs

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