Lines Matching defs:nilfs
26 #include "nilfs.h"
210 struct the_nilfs *nilfs;
227 nilfs = sb->s_fs_info;
228 down_read(&nilfs->ns_segctor_sem);
229 if (vacancy_check && nilfs_near_disk_full(nilfs)) {
230 up_read(&nilfs->ns_segctor_sem);
264 struct the_nilfs *nilfs = sb->s_fs_info;
275 if (nilfs->ns_writer) {
276 struct nilfs_sc_info *sci = nilfs->ns_writer;
280 if (atomic_read(&nilfs->ns_ndirtyblks) > sci->sc_watermark)
283 up_read(&nilfs->ns_segctor_sem);
300 struct the_nilfs *nilfs = sb->s_fs_info;
309 up_read(&nilfs->ns_segctor_sem);
322 struct the_nilfs *nilfs = sb->s_fs_info;
323 struct nilfs_sc_info *sci = nilfs->ns_writer;
329 up_read(&nilfs->ns_segctor_sem);
331 down_write(&nilfs->ns_segctor_sem);
340 downgrade_write(&nilfs->ns_segctor_sem);
348 struct the_nilfs *nilfs = sb->s_fs_info;
349 struct nilfs_sc_info *sci = nilfs->ns_writer;
362 down_write(&nilfs->ns_segctor_sem);
368 up_write(&nilfs->ns_segctor_sem);
381 struct the_nilfs *nilfs = sb->s_fs_info;
386 up_write(&nilfs->ns_segctor_sem);
795 static void nilfs_dispose_list(struct the_nilfs *nilfs,
803 spin_lock(&nilfs->ns_inode_lock);
814 &nilfs->ns_dirty_files);
821 spin_unlock(&nilfs->ns_inode_lock);
832 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
834 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 0);
837 static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs,
844 if (nilfs_mdt_fetch_dirty(nilfs->ns_cpfile))
846 if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile))
848 if ((ret || nilfs_doing_gc()) && nilfs_mdt_fetch_dirty(nilfs->ns_dat))
863 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
866 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root))
869 spin_lock(&nilfs->ns_inode_lock);
870 if (list_empty(&nilfs->ns_dirty_files) && nilfs_segctor_clean(sci))
873 spin_unlock(&nilfs->ns_inode_lock);
879 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
882 nilfs_mdt_clear_dirty(nilfs->ns_cpfile);
883 nilfs_mdt_clear_dirty(nilfs->ns_sufile);
884 nilfs_mdt_clear_dirty(nilfs->ns_dat);
889 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
895 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, 1,
904 nilfs_mdt_mark_dirty(nilfs->ns_cpfile);
906 nilfs->ns_cpfile, nilfs->ns_cno, bh_cp);
917 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
922 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, 0,
941 raw_cp->cp_cno = cpu_to_le64(nilfs->ns_cno);
950 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, bh_cp);
985 struct the_nilfs *nilfs)
995 isz = nilfs->ns_inode_size;
1002 nilfs->ns_nongc_ctime : sci->sc_seg_ctime);
1005 nilfs_write_inode_common(nilfs->ns_dat, (void *)raw_sr +
1007 nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr +
1009 nilfs_write_inode_common(nilfs->ns_sufile, (void *)raw_sr +
1011 memset((void *)raw_sr + srsz, 0, nilfs->ns_blocksize - srsz);
1153 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
1242 err = nilfs_segctor_scan_file(sci, nilfs->ns_cpfile,
1249 err = nilfs_sufile_freev(nilfs->ns_sufile, sci->sc_freesegs,
1252 nilfs_sufile_cancel_freev(nilfs->ns_sufile,
1259 err = nilfs_segctor_scan_file(sci, nilfs->ns_sufile,
1267 err = nilfs_segctor_scan_file(sci, nilfs->ns_dat,
1314 * @nilfs: nilfs object
1317 struct the_nilfs *nilfs)
1328 nilfs_segbuf_map(segbuf, nilfs->ns_segnum,
1329 nilfs->ns_pseg_offset, nilfs);
1331 nilfs_shift_to_next_segment(nilfs);
1332 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs);
1335 segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq;
1336 nextnum = nilfs->ns_nextnum;
1338 if (nilfs->ns_segnum == nilfs->ns_nextnum)
1349 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1355 err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum);
1360 err = nilfs_sufile_alloc(nilfs->ns_sufile, &nextnum);
1364 nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs);
1377 struct the_nilfs *nilfs, int nadd)
1380 struct inode *sufile = nilfs->ns_sufile;
1404 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1413 nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs);
1433 struct the_nilfs *nilfs)
1436 struct inode *sufile = nilfs->ns_sufile;
1440 if (nilfs->ns_nextnum != segbuf->sb_nextnum) {
1451 nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start,
1454 set_nilfs_discontinued(nilfs);
1464 segbuf->sb_segnum != nilfs->ns_nextnum)
1523 struct the_nilfs *nilfs, int mode)
1553 err = nilfs_sufile_cancel_freev(nilfs->ns_sufile,
1561 err = nilfs_segctor_extend_segments(sci, nilfs, nadd);
1569 nilfs_segctor_truncate_segments(sci, sci->sc_curseg, nilfs->ns_sufile);
1737 struct the_nilfs *nilfs)
1741 ret = nilfs_write_logs(&sci->sc_segbufs, nilfs);
1828 struct the_nilfs *nilfs, int err)
1838 nilfs_cancel_segusage(&logs, nilfs->ns_sufile);
1839 nilfs_free_incomplete_logs(&logs, nilfs);
1842 ret = nilfs_sufile_cancel_freev(nilfs->ns_sufile,
1852 static void nilfs_set_next_segment(struct the_nilfs *nilfs,
1855 nilfs->ns_segnum = segbuf->sb_segnum;
1856 nilfs->ns_nextnum = segbuf->sb_nextnum;
1857 nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start
1859 nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq;
1860 nilfs->ns_ctime = segbuf->sb_sum.ctime;
1867 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
1942 nilfs->ns_nongc_ctime = sci->sc_seg_ctime;
1947 nilfs_set_next_segment(nilfs, segbuf);
1950 nilfs->ns_flushed_device = 0;
1951 nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start,
1952 segbuf->sb_sum.seg_seq, nilfs->ns_cno++);
1975 struct the_nilfs *nilfs)
1980 spin_lock(&nilfs->ns_inode_lock);
1982 list_for_each_entry_safe(ii, n, &nilfs->ns_dirty_files, i_dirty) {
1987 spin_unlock(&nilfs->ns_inode_lock);
1996 spin_lock(&nilfs->ns_inode_lock);
2012 spin_unlock(&nilfs->ns_inode_lock);
2018 struct the_nilfs *nilfs)
2024 spin_lock(&nilfs->ns_inode_lock);
2042 spin_unlock(&nilfs->ns_inode_lock);
2044 spin_lock(&nilfs->ns_inode_lock);
2047 spin_unlock(&nilfs->ns_inode_lock);
2058 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
2065 sci->sc_cno = nilfs->ns_cno;
2067 err = nilfs_segctor_collect_dirty_files(sci, nilfs);
2071 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root))
2080 err = nilfs_segctor_begin_construction(sci, nilfs);
2087 err = nilfs_segctor_collect(sci, nilfs, mode);
2094 nilfs_segctor_abort_construction(sci, nilfs, 1);
2111 nilfs_segctor_fill_in_super_root(sci, nilfs);
2113 nilfs_segctor_update_segusage(sci, nilfs->ns_sufile);
2119 nilfs->ns_crc_seed);
2121 err = nilfs_segctor_write(sci, nilfs);
2126 nilfs->ns_blocksize_bits != PAGE_SHIFT) {
2141 nilfs_segctor_drop_written_files(sci, nilfs);
2151 nilfs_segctor_abort_construction(sci, nilfs, err);
2194 struct the_nilfs *nilfs = sb->s_fs_info;
2195 struct nilfs_sc_info *sci = nilfs->ns_writer;
2283 struct the_nilfs *nilfs = sb->s_fs_info;
2284 struct nilfs_sc_info *sci = nilfs->ns_writer;
2321 struct the_nilfs *nilfs = sb->s_fs_info;
2322 struct nilfs_sc_info *sci = nilfs->ns_writer;
2334 nilfs_test_opt(nilfs, STRICT_ORDER) ||
2336 nilfs_discontinued(nilfs)) {
2342 spin_lock(&nilfs->ns_inode_lock);
2345 spin_unlock(&nilfs->ns_inode_lock);
2349 spin_unlock(&nilfs->ns_inode_lock);
2356 nilfs->ns_flushed_device = 0;
2414 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
2420 if (nilfs_discontinued(nilfs))
2427 atomic_set(&nilfs->ns_ndirtyblks, 0);
2429 nilfs_discontinued(nilfs)) {
2430 down_write(&nilfs->ns_sem);
2433 nilfs_sb_will_flip(nilfs));
2435 nilfs_set_log_cursor(sbp[0], nilfs);
2439 up_write(&nilfs->ns_sem);
2455 nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head)
2472 struct the_nilfs *nilfs = sb->s_fs_info;
2473 struct nilfs_sc_info *sci = nilfs->ns_writer;
2482 err = nilfs_mdt_save_to_shadow_map(nilfs->ns_dat);
2486 err = nilfs_ioctl_prepare_clean_segments(nilfs, argv, kbufs);
2488 nilfs_mdt_restore_from_shadow_map(nilfs->ns_dat);
2494 list_splice_tail_init(&nilfs->ns_gc_inodes, &sci->sc_gc_inodes);
2498 nilfs_remove_written_gcinodes(nilfs, &sci->sc_gc_inodes);
2507 if (nilfs_test_opt(nilfs, DISCARD)) {
2508 int ret = nilfs_discard_segments(nilfs, sci->sc_freesegs,
2514 nilfs_clear_opt(nilfs, DISCARD);
2521 nilfs_mdt_clear_shadow_map(nilfs->ns_dat);
2586 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
2648 if (nilfs_sb_dirty(nilfs) && nilfs_sb_need_update(nilfs))
2649 set_nilfs_discontinued(nilfs);
2697 struct the_nilfs *nilfs = sb->s_fs_info;
2725 if (nilfs->ns_interval)
2726 sci->sc_interval = HZ * nilfs->ns_interval;
2727 if (nilfs->ns_watermark)
2728 sci->sc_watermark = nilfs->ns_watermark;
2762 struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
2765 up_write(&nilfs->ns_segctor_sem);
2782 nilfs_dispose_list(nilfs, &sci->sc_dirty_files, 1);
2788 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 1);
2796 down_write(&nilfs->ns_segctor_sem);
2817 struct the_nilfs *nilfs = sb->s_fs_info;
2820 if (nilfs->ns_writer) {
2830 nilfs->ns_writer = nilfs_segctor_new(sb, root);
2831 if (!nilfs->ns_writer)
2834 inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL);
2836 err = nilfs_segctor_start_thread(nilfs->ns_writer);
2852 struct the_nilfs *nilfs = sb->s_fs_info;
2855 down_write(&nilfs->ns_segctor_sem);
2856 if (nilfs->ns_writer) {
2857 nilfs_segctor_destroy(nilfs->ns_writer);
2858 nilfs->ns_writer = NULL;
2860 set_nilfs_purging(nilfs);
2863 spin_lock(&nilfs->ns_inode_lock);
2864 if (!list_empty(&nilfs->ns_dirty_files)) {
2865 list_splice_init(&nilfs->ns_dirty_files, &garbage_list);
2869 spin_unlock(&nilfs->ns_inode_lock);
2870 up_write(&nilfs->ns_segctor_sem);
2872 nilfs_dispose_list(nilfs, &garbage_list, 1);
2873 clear_nilfs_purging(nilfs);