Lines Matching refs:nilfs
185 struct the_nilfs *nilfs; in nilfs_transaction_begin() local
195 nilfs = sb->s_fs_info; in nilfs_transaction_begin()
196 down_read(&nilfs->ns_segctor_sem); in nilfs_transaction_begin()
197 if (vacancy_check && nilfs_near_disk_full(nilfs)) { in nilfs_transaction_begin()
198 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_begin()
227 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_commit() local
236 if (nilfs->ns_writer) { in nilfs_transaction_commit()
237 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_transaction_commit()
241 if (atomic_read(&nilfs->ns_ndirtyblks) > sci->sc_watermark) in nilfs_transaction_commit()
244 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_commit()
258 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_abort() local
265 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_abort()
275 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_relax_pressure_in_lock() local
276 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_relax_pressure_in_lock()
282 up_read(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
284 down_write(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
293 downgrade_write(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
301 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_lock() local
302 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_transaction_lock()
312 down_write(&nilfs->ns_segctor_sem); in nilfs_transaction_lock()
318 up_write(&nilfs->ns_segctor_sem); in nilfs_transaction_lock()
328 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_unlock() local
333 up_write(&nilfs->ns_segctor_sem); in nilfs_transaction_unlock()
714 static void nilfs_dispose_list(struct the_nilfs *nilfs, in nilfs_dispose_list() argument
722 spin_lock(&nilfs->ns_inode_lock); in nilfs_dispose_list()
733 &nilfs->ns_dirty_files); in nilfs_dispose_list()
740 spin_unlock(&nilfs->ns_inode_lock); in nilfs_dispose_list()
751 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_iput_work_func() local
753 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 0); in nilfs_iput_work_func()
756 static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs, in nilfs_test_metadata_dirty() argument
763 if (nilfs_mdt_fetch_dirty(nilfs->ns_cpfile)) in nilfs_test_metadata_dirty()
765 if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile)) in nilfs_test_metadata_dirty()
767 if ((ret || nilfs_doing_gc()) && nilfs_mdt_fetch_dirty(nilfs->ns_dat)) in nilfs_test_metadata_dirty()
782 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_confirm() local
785 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) in nilfs_segctor_confirm()
788 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_confirm()
789 if (list_empty(&nilfs->ns_dirty_files) && nilfs_segctor_clean(sci)) in nilfs_segctor_confirm()
792 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_confirm()
798 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_clear_metadata_dirty() local
801 nilfs_mdt_clear_dirty(nilfs->ns_cpfile); in nilfs_segctor_clear_metadata_dirty()
802 nilfs_mdt_clear_dirty(nilfs->ns_sufile); in nilfs_segctor_clear_metadata_dirty()
803 nilfs_mdt_clear_dirty(nilfs->ns_dat); in nilfs_segctor_clear_metadata_dirty()
808 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_create_checkpoint() local
814 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, 1, in nilfs_segctor_create_checkpoint()
821 nilfs_mdt_mark_dirty(nilfs->ns_cpfile); in nilfs_segctor_create_checkpoint()
823 nilfs->ns_cpfile, nilfs->ns_cno, bh_cp); in nilfs_segctor_create_checkpoint()
832 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_fill_in_checkpoint() local
837 err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, 0, in nilfs_segctor_fill_in_checkpoint()
852 raw_cp->cp_cno = cpu_to_le64(nilfs->ns_cno); in nilfs_segctor_fill_in_checkpoint()
861 nilfs_cpfile_put_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, bh_cp); in nilfs_segctor_fill_in_checkpoint()
896 struct the_nilfs *nilfs) in nilfs_segctor_fill_in_super_root() argument
904 isz = nilfs->ns_inode_size; in nilfs_segctor_fill_in_super_root()
910 nilfs->ns_nongc_ctime : sci->sc_seg_ctime); in nilfs_segctor_fill_in_super_root()
913 nilfs_write_inode_common(nilfs->ns_dat, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
915 nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
917 nilfs_write_inode_common(nilfs->ns_sufile, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
919 memset((void *)raw_sr + srsz, 0, nilfs->ns_blocksize - srsz); in nilfs_segctor_fill_in_super_root()
1059 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_collect_blocks() local
1146 err = nilfs_segctor_scan_file(sci, nilfs->ns_cpfile, in nilfs_segctor_collect_blocks()
1152 err = nilfs_sufile_freev(nilfs->ns_sufile, sci->sc_freesegs, in nilfs_segctor_collect_blocks()
1155 nilfs_sufile_cancel_freev(nilfs->ns_sufile, in nilfs_segctor_collect_blocks()
1162 err = nilfs_segctor_scan_file(sci, nilfs->ns_sufile, in nilfs_segctor_collect_blocks()
1169 err = nilfs_segctor_scan_file(sci, nilfs->ns_dat, in nilfs_segctor_collect_blocks()
1218 struct the_nilfs *nilfs) in nilfs_segctor_begin_construction() argument
1229 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, in nilfs_segctor_begin_construction()
1230 nilfs->ns_pseg_offset, nilfs); in nilfs_segctor_begin_construction()
1232 nilfs_shift_to_next_segment(nilfs); in nilfs_segctor_begin_construction()
1233 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs); in nilfs_segctor_begin_construction()
1236 segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq; in nilfs_segctor_begin_construction()
1237 nextnum = nilfs->ns_nextnum; in nilfs_segctor_begin_construction()
1239 if (nilfs->ns_segnum == nilfs->ns_nextnum) in nilfs_segctor_begin_construction()
1250 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); in nilfs_segctor_begin_construction()
1256 err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum); in nilfs_segctor_begin_construction()
1261 err = nilfs_sufile_alloc(nilfs->ns_sufile, &nextnum); in nilfs_segctor_begin_construction()
1265 nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs); in nilfs_segctor_begin_construction()
1278 struct the_nilfs *nilfs, int nadd) in nilfs_segctor_extend_segments() argument
1281 struct inode *sufile = nilfs->ns_sufile; in nilfs_segctor_extend_segments()
1305 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); in nilfs_segctor_extend_segments()
1314 nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs); in nilfs_segctor_extend_segments()
1334 struct the_nilfs *nilfs) in nilfs_free_incomplete_logs() argument
1337 struct inode *sufile = nilfs->ns_sufile; in nilfs_free_incomplete_logs()
1341 if (nilfs->ns_nextnum != segbuf->sb_nextnum) { in nilfs_free_incomplete_logs()
1350 nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start, in nilfs_free_incomplete_logs()
1353 set_nilfs_discontinued(nilfs); in nilfs_free_incomplete_logs()
1363 segbuf->sb_segnum != nilfs->ns_nextnum) in nilfs_free_incomplete_logs()
1422 struct the_nilfs *nilfs, int mode) in nilfs_segctor_collect() argument
1451 err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, in nilfs_segctor_collect()
1459 err = nilfs_segctor_extend_segments(sci, nilfs, nadd); in nilfs_segctor_collect()
1466 nilfs_segctor_truncate_segments(sci, sci->sc_curseg, nilfs->ns_sufile); in nilfs_segctor_collect()
1632 struct the_nilfs *nilfs) in nilfs_segctor_write() argument
1636 ret = nilfs_write_logs(&sci->sc_segbufs, nilfs); in nilfs_segctor_write()
1721 struct the_nilfs *nilfs, int err) in nilfs_segctor_abort_construction() argument
1731 nilfs_cancel_segusage(&logs, nilfs->ns_sufile); in nilfs_segctor_abort_construction()
1732 nilfs_free_incomplete_logs(&logs, nilfs); in nilfs_segctor_abort_construction()
1735 ret = nilfs_sufile_cancel_freev(nilfs->ns_sufile, in nilfs_segctor_abort_construction()
1745 static void nilfs_set_next_segment(struct the_nilfs *nilfs, in nilfs_set_next_segment() argument
1748 nilfs->ns_segnum = segbuf->sb_segnum; in nilfs_set_next_segment()
1749 nilfs->ns_nextnum = segbuf->sb_nextnum; in nilfs_set_next_segment()
1750 nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start in nilfs_set_next_segment()
1752 nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq; in nilfs_set_next_segment()
1753 nilfs->ns_ctime = segbuf->sb_sum.ctime; in nilfs_set_next_segment()
1760 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_complete_write() local
1833 nilfs->ns_nongc_ctime = sci->sc_seg_ctime; in nilfs_segctor_complete_write()
1838 nilfs_set_next_segment(nilfs, segbuf); in nilfs_segctor_complete_write()
1841 nilfs->ns_flushed_device = 0; in nilfs_segctor_complete_write()
1842 nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start, in nilfs_segctor_complete_write()
1843 segbuf->sb_sum.seg_seq, nilfs->ns_cno++); in nilfs_segctor_complete_write()
1866 struct the_nilfs *nilfs) in nilfs_segctor_collect_dirty_files() argument
1871 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
1873 list_for_each_entry_safe(ii, n, &nilfs->ns_dirty_files, i_dirty) { in nilfs_segctor_collect_dirty_files()
1878 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
1888 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
1900 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
1906 struct the_nilfs *nilfs) in nilfs_segctor_drop_written_files() argument
1912 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
1930 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
1932 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
1935 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
1946 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_do_construct() local
1950 sci->sc_cno = nilfs->ns_cno; in nilfs_segctor_do_construct()
1952 err = nilfs_segctor_collect_dirty_files(sci, nilfs); in nilfs_segctor_do_construct()
1956 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) in nilfs_segctor_do_construct()
1965 err = nilfs_segctor_begin_construction(sci, nilfs); in nilfs_segctor_do_construct()
1972 err = nilfs_segctor_collect(sci, nilfs, mode); in nilfs_segctor_do_construct()
1979 nilfs_segctor_abort_construction(sci, nilfs, 1); in nilfs_segctor_do_construct()
1996 nilfs_segctor_fill_in_super_root(sci, nilfs); in nilfs_segctor_do_construct()
1998 nilfs_segctor_update_segusage(sci, nilfs->ns_sufile); in nilfs_segctor_do_construct()
2004 nilfs->ns_crc_seed); in nilfs_segctor_do_construct()
2006 err = nilfs_segctor_write(sci, nilfs); in nilfs_segctor_do_construct()
2011 nilfs->ns_blocksize_bits != PAGE_CACHE_SHIFT) { in nilfs_segctor_do_construct()
2026 nilfs_segctor_drop_written_files(sci, nilfs); in nilfs_segctor_do_construct()
2036 nilfs_segctor_abort_construction(sci, nilfs, err); in nilfs_segctor_do_construct()
2079 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_flush_segment() local
2080 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_flush_segment()
2169 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_construct_segment() local
2170 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_construct_segment()
2207 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_construct_dsync_segment() local
2208 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_construct_dsync_segment()
2220 nilfs_test_opt(nilfs, STRICT_ORDER) || in nilfs_construct_dsync_segment()
2222 nilfs_discontinued(nilfs)) { in nilfs_construct_dsync_segment()
2228 spin_lock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2231 spin_unlock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2235 spin_unlock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2242 nilfs->ns_flushed_device = 0; in nilfs_construct_dsync_segment()
2300 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_construct() local
2306 if (nilfs_discontinued(nilfs)) in nilfs_segctor_construct()
2313 atomic_set(&nilfs->ns_ndirtyblks, 0); in nilfs_segctor_construct()
2315 nilfs_discontinued(nilfs)) { in nilfs_segctor_construct()
2316 down_write(&nilfs->ns_sem); in nilfs_segctor_construct()
2319 nilfs_sb_will_flip(nilfs)); in nilfs_segctor_construct()
2321 nilfs_set_log_cursor(sbp[0], nilfs); in nilfs_segctor_construct()
2325 up_write(&nilfs->ns_sem); in nilfs_segctor_construct()
2340 nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head) in nilfs_remove_written_gcinodes() argument
2357 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_clean_segments() local
2358 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_clean_segments()
2367 err = nilfs_mdt_save_to_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2371 err = nilfs_ioctl_prepare_clean_segments(nilfs, argv, kbufs); in nilfs_clean_segments()
2373 nilfs_mdt_restore_from_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2379 list_splice_tail_init(&nilfs->ns_gc_inodes, &sci->sc_gc_inodes); in nilfs_clean_segments()
2383 nilfs_remove_written_gcinodes(nilfs, &sci->sc_gc_inodes); in nilfs_clean_segments()
2393 if (nilfs_test_opt(nilfs, DISCARD)) { in nilfs_clean_segments()
2394 int ret = nilfs_discard_segments(nilfs, sci->sc_freesegs, in nilfs_clean_segments()
2400 nilfs_clear_opt(nilfs, DISCARD); in nilfs_clean_segments()
2407 nilfs_mdt_clear_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2473 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_thread() local
2537 if (nilfs_sb_dirty(nilfs) && nilfs_sb_need_update(nilfs)) in nilfs_segctor_thread()
2538 set_nilfs_discontinued(nilfs); in nilfs_segctor_thread()
2587 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_segctor_new() local
2615 if (nilfs->ns_interval) in nilfs_segctor_new()
2616 sci->sc_interval = HZ * nilfs->ns_interval; in nilfs_segctor_new()
2617 if (nilfs->ns_watermark) in nilfs_segctor_new()
2618 sci->sc_watermark = nilfs->ns_watermark; in nilfs_segctor_new()
2650 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_destroy() local
2653 up_write(&nilfs->ns_segctor_sem); in nilfs_segctor_destroy()
2670 nilfs_dispose_list(nilfs, &sci->sc_dirty_files, 1); in nilfs_segctor_destroy()
2676 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 1); in nilfs_segctor_destroy()
2684 down_write(&nilfs->ns_segctor_sem); in nilfs_segctor_destroy()
2705 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_attach_log_writer() local
2708 if (nilfs->ns_writer) { in nilfs_attach_log_writer()
2717 nilfs->ns_writer = nilfs_segctor_new(sb, root); in nilfs_attach_log_writer()
2718 if (!nilfs->ns_writer) in nilfs_attach_log_writer()
2721 err = nilfs_segctor_start_thread(nilfs->ns_writer); in nilfs_attach_log_writer()
2723 kfree(nilfs->ns_writer); in nilfs_attach_log_writer()
2724 nilfs->ns_writer = NULL; in nilfs_attach_log_writer()
2738 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_detach_log_writer() local
2741 down_write(&nilfs->ns_segctor_sem); in nilfs_detach_log_writer()
2742 if (nilfs->ns_writer) { in nilfs_detach_log_writer()
2743 nilfs_segctor_destroy(nilfs->ns_writer); in nilfs_detach_log_writer()
2744 nilfs->ns_writer = NULL; in nilfs_detach_log_writer()
2748 spin_lock(&nilfs->ns_inode_lock); in nilfs_detach_log_writer()
2749 if (!list_empty(&nilfs->ns_dirty_files)) { in nilfs_detach_log_writer()
2750 list_splice_init(&nilfs->ns_dirty_files, &garbage_list); in nilfs_detach_log_writer()
2754 spin_unlock(&nilfs->ns_inode_lock); in nilfs_detach_log_writer()
2755 up_write(&nilfs->ns_segctor_sem); in nilfs_detach_log_writer()
2757 nilfs_dispose_list(nilfs, &garbage_list, 1); in nilfs_detach_log_writer()