Lines Matching defs:nilfs
38 #include "nilfs.h"
89 struct the_nilfs *nilfs = sb->s_fs_info;
92 down_write(&nilfs->ns_sem);
93 if (!(nilfs->ns_mount_state & NILFS_ERROR_FS)) {
94 nilfs->ns_mount_state |= NILFS_ERROR_FS;
103 up_write(&nilfs->ns_sem);
122 struct the_nilfs *nilfs = sb->s_fs_info;
139 if (nilfs_test_opt(nilfs, ERRORS_RO)) {
145 if (nilfs_test_opt(nilfs, ERRORS_PANIC))
175 struct the_nilfs *nilfs = sb->s_fs_info;
179 set_buffer_dirty(nilfs->ns_sbh[0]);
180 if (nilfs_test_opt(nilfs, BARRIER)) {
181 err = __sync_dirty_buffer(nilfs->ns_sbh[0],
184 err = sync_dirty_buffer(nilfs->ns_sbh[0]);
189 if (err == -EIO && nilfs->ns_sbh[1]) {
194 memcpy(nilfs->ns_sbp[1], nilfs->ns_sbp[0],
195 nilfs->ns_sbsize);
196 nilfs_fall_back_super_block(nilfs);
200 struct nilfs_super_block *sbp = nilfs->ns_sbp[0];
202 nilfs->ns_sbwcount++;
208 clear_nilfs_discontinued(nilfs);
211 if (nilfs->ns_sbh[1]) {
213 set_buffer_dirty(nilfs->ns_sbh[1]);
214 if (sync_dirty_buffer(nilfs->ns_sbh[1]) < 0)
217 if (le64_to_cpu(nilfs->ns_sbp[1]->s_last_cno) <
218 le64_to_cpu(nilfs->ns_sbp[0]->s_last_cno))
219 sbp = nilfs->ns_sbp[1];
222 spin_lock(&nilfs->ns_last_segment_lock);
223 nilfs->ns_prot_seq = le64_to_cpu(sbp->s_last_seq);
224 spin_unlock(&nilfs->ns_last_segment_lock);
231 struct the_nilfs *nilfs)
235 /* nilfs->ns_sem must be locked by the caller. */
236 nilfs_count_free_blocks(nilfs, &nfreeblocks);
239 spin_lock(&nilfs->ns_last_segment_lock);
240 sbp->s_last_seq = cpu_to_le64(nilfs->ns_last_seq);
241 sbp->s_last_pseg = cpu_to_le64(nilfs->ns_last_pseg);
242 sbp->s_last_cno = cpu_to_le64(nilfs->ns_last_cno);
243 spin_unlock(&nilfs->ns_last_segment_lock);
249 struct the_nilfs *nilfs = sb->s_fs_info;
250 struct nilfs_super_block **sbp = nilfs->ns_sbp;
252 /* nilfs->ns_sem must be locked by the caller. */
256 memcpy(sbp[0], sbp[1], nilfs->ns_sbsize);
263 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize);
267 nilfs_swap_super_block(nilfs);
274 struct the_nilfs *nilfs = sb->s_fs_info;
275 struct nilfs_super_block **sbp = nilfs->ns_sbp;
278 /* nilfs->ns_sem must be locked by the caller. */
280 nilfs->ns_sbwtime = t;
283 sbp[0]->s_sum = cpu_to_le32(crc32_le(nilfs->ns_crc_seed,
285 nilfs->ns_sbsize));
289 sbp[1]->s_sum = cpu_to_le32(crc32_le(nilfs->ns_crc_seed,
291 nilfs->ns_sbsize));
293 clear_nilfs_sb_dirty(nilfs);
294 nilfs->ns_flushed_device = 1;
310 struct the_nilfs *nilfs = sb->s_fs_info;
317 sbp[0]->s_state = cpu_to_le16(nilfs->ns_mount_state);
318 nilfs_set_log_cursor(sbp[0], nilfs);
340 struct the_nilfs *nilfs = sb->s_fs_info;
348 /* nilfs->ns_sem must be locked by the caller. */
349 if (nilfs->ns_sbh[1] &&
350 nilfs->ns_sbh[1]->b_blocknr > nilfs->ns_first_data_block) {
352 blocknr = nilfs->ns_sbh[1]->b_blocknr;
353 } else if (nilfs->ns_sbh[0]->b_blocknr > nilfs->ns_first_data_block) {
355 blocknr = nilfs->ns_sbh[0]->b_blocknr;
360 if (sb2i >= 0 && (u64)blocknr << nilfs->ns_blocksize_bits == sb2off)
364 newblocknr = sb2off >> nilfs->ns_blocksize_bits;
365 offset = sb2off & (nilfs->ns_blocksize - 1);
384 memcpy(nsbp, nilfs->ns_sbp[sb2i], nilfs->ns_sbsize);
391 memset((void *)nsbp + nilfs->ns_sbsize, 0,
392 nsbh->b_size - offset - nilfs->ns_sbsize);
400 brelse(nilfs->ns_sbh[sb2i]);
401 nilfs->ns_sbh[sb2i] = nsbh;
402 nilfs->ns_sbp[sb2i] = nsbp;
403 } else if (nilfs->ns_sbh[0]->b_blocknr < nilfs->ns_first_data_block) {
405 nilfs->ns_sbh[1] = nsbh;
406 nilfs->ns_sbp[1] = nsbp;
421 struct the_nilfs *nilfs = sb->s_fs_info;
446 down_write(&nilfs->ns_segctor_sem);
449 newnsegs = sb2off >> nilfs->ns_blocksize_bits;
450 do_div(newnsegs, nilfs->ns_blocks_per_segment);
452 ret = nilfs_sufile_resize(nilfs->ns_sufile, newnsegs);
453 up_write(&nilfs->ns_segctor_sem);
461 down_write(&nilfs->ns_sem);
466 nilfs_set_log_cursor(sbp[0], nilfs);
475 sbp[0]->s_nsegments = cpu_to_le64(nilfs->ns_nsegments);
477 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize);
480 up_write(&nilfs->ns_sem);
489 nilfs_sufile_set_alloc_range(nilfs->ns_sufile, 0, newnsegs - 1);
496 struct the_nilfs *nilfs = sb->s_fs_info;
501 down_write(&nilfs->ns_sem);
503 up_write(&nilfs->ns_sem);
506 nilfs_sysfs_delete_device_group(nilfs);
507 iput(nilfs->ns_sufile);
508 iput(nilfs->ns_cpfile);
509 iput(nilfs->ns_dat);
511 destroy_nilfs(nilfs);
517 struct the_nilfs *nilfs = sb->s_fs_info;
525 down_write(&nilfs->ns_sem);
526 if (nilfs_sb_dirty(nilfs)) {
527 sbp = nilfs_prepare_super(sb, nilfs_sb_will_flip(nilfs));
529 nilfs_set_log_cursor(sbp[0], nilfs);
533 up_write(&nilfs->ns_sem);
536 err = nilfs_flush_device(nilfs);
544 struct the_nilfs *nilfs = sb->s_fs_info;
551 nilfs, curr_mnt ? NILFS_CPTREE_CURRENT_CNO : cno);
558 down_read(&nilfs->ns_segctor_sem);
559 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, cno, 0, &raw_cp,
561 up_read(&nilfs->ns_segctor_sem);
572 err = nilfs_ifile_read(sb, root, nilfs->ns_inode_size,
582 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, cno, bh_cp);
589 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, cno, bh_cp);
598 struct the_nilfs *nilfs = sb->s_fs_info;
605 down_write(&nilfs->ns_sem);
607 up_write(&nilfs->ns_sem);
613 struct the_nilfs *nilfs = sb->s_fs_info;
618 down_write(&nilfs->ns_sem);
620 up_write(&nilfs->ns_sem);
628 struct the_nilfs *nilfs = root->nilfs;
643 blocks = nilfs->ns_blocks_per_segment * nilfs->ns_nsegments
644 - nilfs->ns_first_data_block;
645 nrsvblocks = nilfs->ns_nrsvsegs * nilfs->ns_blocks_per_segment;
655 err = nilfs_count_free_blocks(nilfs, &nfreeblocks);
694 struct the_nilfs *nilfs = sb->s_fs_info;
697 if (!nilfs_test_opt(nilfs, BARRIER))
701 if (nilfs_test_opt(nilfs, ERRORS_PANIC))
703 if (nilfs_test_opt(nilfs, ERRORS_CONT))
705 if (nilfs_test_opt(nilfs, STRICT_ORDER))
707 if (nilfs_test_opt(nilfs, NORECOVERY))
709 if (nilfs_test_opt(nilfs, DISCARD))
751 struct the_nilfs *nilfs = sb->s_fs_info;
767 nilfs_set_opt(nilfs, BARRIER);
770 nilfs_clear_opt(nilfs, BARRIER);
775 nilfs_clear_opt(nilfs, STRICT_ORDER);
778 nilfs_set_opt(nilfs, STRICT_ORDER);
783 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_PANIC);
786 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_RO);
789 nilfs_write_opt(nilfs, ERROR_MODE, ERRORS_CONT);
800 nilfs_set_opt(nilfs, NORECOVERY);
803 nilfs_set_opt(nilfs, DISCARD);
806 nilfs_clear_opt(nilfs, DISCARD);
820 struct the_nilfs *nilfs = sb->s_fs_info;
822 nilfs->ns_mount_opt =
828 struct the_nilfs *nilfs = sb->s_fs_info;
833 /* nilfs->ns_sem must be locked by the caller. */
844 if (nilfs->ns_mount_state & NILFS_ERROR_FS) {
862 memcpy(sbp[1], sbp[0], nilfs->ns_sbsize);
884 struct the_nilfs *nilfs = sb->s_fs_info;
895 nilfs->ns_resuid = le16_to_cpu(sbp->s_def_resuid);
896 nilfs->ns_resgid = le16_to_cpu(sbp->s_def_resgid);
897 nilfs->ns_interval = le32_to_cpu(sbp->s_c_interval);
898 nilfs->ns_watermark = le32_to_cpu(sbp->s_c_block_max);
978 struct the_nilfs *nilfs = s->s_fs_info;
982 mutex_lock(&nilfs->ns_snapshot_mount_mutex);
984 down_read(&nilfs->ns_segctor_sem);
985 ret = nilfs_cpfile_is_snapshot(nilfs->ns_cpfile, cno);
986 up_read(&nilfs->ns_segctor_sem);
1008 mutex_unlock(&nilfs->ns_snapshot_mount_mutex);
1026 struct the_nilfs *nilfs = sb->s_fs_info;
1032 if (cno > nilfs->ns_cno)
1035 if (cno >= nilfs_last_cno(nilfs))
1039 root = nilfs_lookup_root(nilfs, cno);
1061 * This function is called exclusively by nilfs->ns_mount_mutex.
1067 struct the_nilfs *nilfs;
1072 nilfs = alloc_nilfs(sb);
1073 if (!nilfs)
1076 sb->s_fs_info = nilfs;
1078 err = init_nilfs(nilfs, sb, (char *)data);
1090 err = load_nilfs(nilfs, sb);
1094 cno = nilfs_last_cno(nilfs);
1116 down_write(&nilfs->ns_sem);
1118 up_write(&nilfs->ns_sem);
1130 nilfs_sysfs_delete_device_group(nilfs);
1131 iput(nilfs->ns_sufile);
1132 iput(nilfs->ns_cpfile);
1133 iput(nilfs->ns_dat);
1136 destroy_nilfs(nilfs);
1142 struct the_nilfs *nilfs = sb->s_fs_info;
1149 old_mount_opt = nilfs->ns_mount_opt;
1159 if (!nilfs_valid_fs(nilfs)) {
1174 down_write(&nilfs->ns_sem);
1176 up_write(&nilfs->ns_sem);
1186 down_read(&nilfs->ns_sem);
1187 features = le64_to_cpu(nilfs->ns_sbp[0]->s_feature_compat_ro) &
1189 up_read(&nilfs->ns_sem);
1205 down_write(&nilfs->ns_sem);
1207 up_write(&nilfs->ns_sem);
1214 nilfs->ns_mount_opt = old_mount_opt;