Lines Matching refs:nilfs

203 	struct the_nilfs *nilfs;  in nilfs_transaction_begin()  local
220 nilfs = sb->s_fs_info; in nilfs_transaction_begin()
221 down_read(&nilfs->ns_segctor_sem); in nilfs_transaction_begin()
222 if (vacancy_check && nilfs_near_disk_full(nilfs)) { in nilfs_transaction_begin()
223 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_begin()
259 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_commit() local
270 if (nilfs->ns_writer) { in nilfs_transaction_commit()
271 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_transaction_commit()
275 if (atomic_read(&nilfs->ns_ndirtyblks) > sci->sc_watermark) in nilfs_transaction_commit()
278 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_commit()
295 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_abort() local
304 up_read(&nilfs->ns_segctor_sem); in nilfs_transaction_abort()
317 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_relax_pressure_in_lock() local
318 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_relax_pressure_in_lock()
324 up_read(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
326 down_write(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
335 downgrade_write(&nilfs->ns_segctor_sem); in nilfs_relax_pressure_in_lock()
343 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_lock() local
344 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_transaction_lock()
357 down_write(&nilfs->ns_segctor_sem); in nilfs_transaction_lock()
363 up_write(&nilfs->ns_segctor_sem); in nilfs_transaction_lock()
376 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_transaction_unlock() local
381 up_write(&nilfs->ns_segctor_sem); in nilfs_transaction_unlock()
795 static void nilfs_dispose_list(struct the_nilfs *nilfs, in nilfs_dispose_list() argument
803 spin_lock(&nilfs->ns_inode_lock); in nilfs_dispose_list()
814 &nilfs->ns_dirty_files); in nilfs_dispose_list()
821 spin_unlock(&nilfs->ns_inode_lock); in nilfs_dispose_list()
832 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_iput_work_func() local
834 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 0); in nilfs_iput_work_func()
837 static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs, in nilfs_test_metadata_dirty() argument
844 if (nilfs_mdt_fetch_dirty(nilfs->ns_cpfile)) in nilfs_test_metadata_dirty()
846 if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile)) in nilfs_test_metadata_dirty()
848 if ((ret || nilfs_doing_gc()) && nilfs_mdt_fetch_dirty(nilfs->ns_dat)) in nilfs_test_metadata_dirty()
863 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_confirm() local
866 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) in nilfs_segctor_confirm()
869 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_confirm()
870 if (list_empty(&nilfs->ns_dirty_files) && nilfs_segctor_clean(sci)) in nilfs_segctor_confirm()
873 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_confirm()
879 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_clear_metadata_dirty() local
882 nilfs_mdt_clear_dirty(nilfs->ns_cpfile); in nilfs_segctor_clear_metadata_dirty()
883 nilfs_mdt_clear_dirty(nilfs->ns_sufile); in nilfs_segctor_clear_metadata_dirty()
884 nilfs_mdt_clear_dirty(nilfs->ns_dat); in nilfs_segctor_clear_metadata_dirty()
928 struct the_nilfs *nilfs = inode->i_sb->s_fs_info; in nilfs_write_root_mdt_inode() local
936 nilfs->ns_inode_size - sizeof(*raw_inode)); in nilfs_write_root_mdt_inode()
942 struct the_nilfs *nilfs) in nilfs_segctor_fill_in_super_root() argument
952 isz = nilfs->ns_inode_size; in nilfs_segctor_fill_in_super_root()
959 nilfs->ns_nongc_ctime : sci->sc_seg_ctime); in nilfs_segctor_fill_in_super_root()
962 nilfs_write_root_mdt_inode(nilfs->ns_dat, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
964 nilfs_write_root_mdt_inode(nilfs->ns_cpfile, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
966 nilfs_write_root_mdt_inode(nilfs->ns_sufile, (void *)raw_sr + in nilfs_segctor_fill_in_super_root()
969 memset((void *)raw_sr + srsz, 0, nilfs->ns_blocksize - srsz); in nilfs_segctor_fill_in_super_root()
1131 static int nilfs_free_segments(struct the_nilfs *nilfs, __u64 *segnumv, in nilfs_free_segments() argument
1140 ret = nilfs_sufile_freev(nilfs->ns_sufile, segnumv, nsegs, &ndone); in nilfs_free_segments()
1142 nilfs_sufile_cancel_freev(nilfs->ns_sufile, segnumv, ndone, in nilfs_free_segments()
1154 nilfs_err(nilfs->ns_sb, in nilfs_free_segments()
1165 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_collect_blocks() local
1248 err = nilfs_cpfile_create_checkpoint(nilfs->ns_cpfile, in nilfs_segctor_collect_blocks()
1249 nilfs->ns_cno); in nilfs_segctor_collect_blocks()
1254 err = nilfs_segctor_scan_file(sci, nilfs->ns_cpfile, in nilfs_segctor_collect_blocks()
1261 err = nilfs_free_segments(nilfs, sci->sc_freesegs, in nilfs_segctor_collect_blocks()
1267 err = nilfs_segctor_scan_file(sci, nilfs->ns_sufile, in nilfs_segctor_collect_blocks()
1275 err = nilfs_segctor_scan_file(sci, nilfs->ns_dat, in nilfs_segctor_collect_blocks()
1327 struct the_nilfs *nilfs) in nilfs_segctor_begin_construction() argument
1338 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, in nilfs_segctor_begin_construction()
1339 nilfs->ns_pseg_offset, nilfs); in nilfs_segctor_begin_construction()
1341 nilfs_shift_to_next_segment(nilfs); in nilfs_segctor_begin_construction()
1342 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs); in nilfs_segctor_begin_construction()
1345 segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq; in nilfs_segctor_begin_construction()
1346 nextnum = nilfs->ns_nextnum; in nilfs_segctor_begin_construction()
1348 if (nilfs->ns_segnum == nilfs->ns_nextnum) in nilfs_segctor_begin_construction()
1359 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); in nilfs_segctor_begin_construction()
1365 err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum); in nilfs_segctor_begin_construction()
1370 err = nilfs_sufile_alloc(nilfs->ns_sufile, &nextnum); in nilfs_segctor_begin_construction()
1374 nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs); in nilfs_segctor_begin_construction()
1387 struct the_nilfs *nilfs, int nadd) in nilfs_segctor_extend_segments() argument
1390 struct inode *sufile = nilfs->ns_sufile; in nilfs_segctor_extend_segments()
1414 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); in nilfs_segctor_extend_segments()
1423 nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs); in nilfs_segctor_extend_segments()
1443 struct the_nilfs *nilfs) in nilfs_free_incomplete_logs() argument
1446 struct inode *sufile = nilfs->ns_sufile; in nilfs_free_incomplete_logs()
1450 if (nilfs->ns_nextnum != segbuf->sb_nextnum) { in nilfs_free_incomplete_logs()
1461 nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start, in nilfs_free_incomplete_logs()
1464 set_nilfs_discontinued(nilfs); in nilfs_free_incomplete_logs()
1474 segbuf->sb_segnum != nilfs->ns_nextnum) in nilfs_free_incomplete_logs()
1533 struct the_nilfs *nilfs, int mode) in nilfs_segctor_collect() argument
1563 err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, in nilfs_segctor_collect()
1571 err = nilfs_segctor_extend_segments(sci, nilfs, nadd); in nilfs_segctor_collect()
1579 nilfs_segctor_truncate_segments(sci, sci->sc_curseg, nilfs->ns_sufile); in nilfs_segctor_collect()
1774 struct the_nilfs *nilfs) in nilfs_segctor_write() argument
1778 ret = nilfs_write_logs(&sci->sc_segbufs, nilfs); in nilfs_segctor_write()
1860 struct the_nilfs *nilfs, int err) in nilfs_segctor_abort_construction() argument
1873 nilfs_cancel_segusage(&logs, nilfs->ns_sufile); in nilfs_segctor_abort_construction()
1874 nilfs_free_incomplete_logs(&logs, nilfs); in nilfs_segctor_abort_construction()
1877 ret = nilfs_sufile_cancel_freev(nilfs->ns_sufile, in nilfs_segctor_abort_construction()
1887 static void nilfs_set_next_segment(struct the_nilfs *nilfs, in nilfs_set_next_segment() argument
1890 nilfs->ns_segnum = segbuf->sb_segnum; in nilfs_set_next_segment()
1891 nilfs->ns_nextnum = segbuf->sb_nextnum; in nilfs_set_next_segment()
1892 nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start in nilfs_set_next_segment()
1894 nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq; in nilfs_set_next_segment()
1895 nilfs->ns_ctime = segbuf->sb_sum.ctime; in nilfs_set_next_segment()
1902 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_complete_write() local
1977 nilfs->ns_nongc_ctime = sci->sc_seg_ctime; in nilfs_segctor_complete_write()
1982 nilfs_set_next_segment(nilfs, segbuf); in nilfs_segctor_complete_write()
1985 nilfs->ns_flushed_device = 0; in nilfs_segctor_complete_write()
1986 nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start, in nilfs_segctor_complete_write()
1987 segbuf->sb_sum.seg_seq, nilfs->ns_cno++); in nilfs_segctor_complete_write()
2010 struct the_nilfs *nilfs) in nilfs_segctor_collect_dirty_files() argument
2015 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
2017 list_for_each_entry_safe(ii, n, &nilfs->ns_dirty_files, i_dirty) { in nilfs_segctor_collect_dirty_files()
2022 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
2031 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
2047 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_collect_dirty_files()
2053 struct the_nilfs *nilfs) in nilfs_segctor_drop_written_files() argument
2059 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
2077 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
2079 spin_lock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
2082 spin_unlock(&nilfs->ns_inode_lock); in nilfs_segctor_drop_written_files()
2093 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_do_construct() local
2100 sci->sc_cno = nilfs->ns_cno; in nilfs_segctor_do_construct()
2102 err = nilfs_segctor_collect_dirty_files(sci, nilfs); in nilfs_segctor_do_construct()
2106 if (nilfs_test_metadata_dirty(nilfs, sci->sc_root)) in nilfs_segctor_do_construct()
2115 err = nilfs_segctor_begin_construction(sci, nilfs); in nilfs_segctor_do_construct()
2122 err = nilfs_segctor_collect(sci, nilfs, mode); in nilfs_segctor_do_construct()
2129 nilfs_segctor_abort_construction(sci, nilfs, 1); in nilfs_segctor_do_construct()
2143 nilfs->ns_cpfile, nilfs->ns_cno, sci->sc_root, in nilfs_segctor_do_construct()
2150 nilfs_segctor_fill_in_super_root(sci, nilfs); in nilfs_segctor_do_construct()
2152 nilfs_segctor_update_segusage(sci, nilfs->ns_sufile); in nilfs_segctor_do_construct()
2155 nilfs_prepare_write_logs(&sci->sc_segbufs, nilfs->ns_crc_seed); in nilfs_segctor_do_construct()
2157 err = nilfs_segctor_write(sci, nilfs); in nilfs_segctor_do_construct()
2162 nilfs->ns_blocksize_bits != PAGE_SHIFT) { in nilfs_segctor_do_construct()
2177 nilfs_segctor_drop_written_files(sci, nilfs); in nilfs_segctor_do_construct()
2186 nilfs_segctor_abort_construction(sci, nilfs, err); in nilfs_segctor_do_construct()
2231 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_flush_segment() local
2232 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_flush_segment()
2332 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_construct_segment() local
2333 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_construct_segment()
2363 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_construct_dsync_segment() local
2364 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_construct_dsync_segment()
2376 nilfs_test_opt(nilfs, STRICT_ORDER) || in nilfs_construct_dsync_segment()
2378 nilfs_discontinued(nilfs)) { in nilfs_construct_dsync_segment()
2384 spin_lock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2387 spin_unlock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2391 spin_unlock(&nilfs->ns_inode_lock); in nilfs_construct_dsync_segment()
2398 nilfs->ns_flushed_device = 0; in nilfs_construct_dsync_segment()
2469 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_construct() local
2475 if (nilfs_discontinued(nilfs)) in nilfs_segctor_construct()
2482 atomic_set(&nilfs->ns_ndirtyblks, 0); in nilfs_segctor_construct()
2484 nilfs_discontinued(nilfs)) { in nilfs_segctor_construct()
2485 down_write(&nilfs->ns_sem); in nilfs_segctor_construct()
2488 nilfs_sb_will_flip(nilfs)); in nilfs_segctor_construct()
2490 nilfs_set_log_cursor(sbp[0], nilfs); in nilfs_segctor_construct()
2494 up_write(&nilfs->ns_sem); in nilfs_segctor_construct()
2510 nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head) in nilfs_remove_written_gcinodes() argument
2527 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_clean_segments() local
2528 struct nilfs_sc_info *sci = nilfs->ns_writer; in nilfs_clean_segments()
2537 err = nilfs_mdt_save_to_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2541 err = nilfs_ioctl_prepare_clean_segments(nilfs, argv, kbufs); in nilfs_clean_segments()
2543 nilfs_mdt_restore_from_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2549 list_splice_tail_init(&nilfs->ns_gc_inodes, &sci->sc_gc_inodes); in nilfs_clean_segments()
2553 nilfs_remove_written_gcinodes(nilfs, &sci->sc_gc_inodes); in nilfs_clean_segments()
2562 if (nilfs_test_opt(nilfs, DISCARD)) { in nilfs_clean_segments()
2563 int ret = nilfs_discard_segments(nilfs, sci->sc_freesegs, in nilfs_clean_segments()
2569 nilfs_clear_opt(nilfs, DISCARD); in nilfs_clean_segments()
2576 nilfs_mdt_clear_shadow_map(nilfs->ns_dat); in nilfs_clean_segments()
2671 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_thread() local
2696 if (nilfs_sb_dirty(nilfs) && nilfs_sb_need_update(nilfs)) in nilfs_segctor_thread()
2697 set_nilfs_discontinued(nilfs); in nilfs_segctor_thread()
2717 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_segctor_new() local
2743 if (nilfs->ns_interval) in nilfs_segctor_new()
2744 sci->sc_interval = HZ * nilfs->ns_interval; in nilfs_segctor_new()
2745 if (nilfs->ns_watermark) in nilfs_segctor_new()
2746 sci->sc_watermark = nilfs->ns_watermark; in nilfs_segctor_new()
2780 struct the_nilfs *nilfs = sci->sc_super->s_fs_info; in nilfs_segctor_destroy() local
2783 up_write(&nilfs->ns_segctor_sem); in nilfs_segctor_destroy()
2811 nilfs_dispose_list(nilfs, &sci->sc_dirty_files, 1); in nilfs_segctor_destroy()
2817 nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 1); in nilfs_segctor_destroy()
2825 down_write(&nilfs->ns_segctor_sem); in nilfs_segctor_destroy()
2845 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_attach_log_writer() local
2850 if (nilfs->ns_writer) { in nilfs_attach_log_writer()
2864 nilfs->ns_writer = sci; in nilfs_attach_log_writer()
2888 struct the_nilfs *nilfs = sb->s_fs_info; in nilfs_detach_log_writer() local
2891 down_write(&nilfs->ns_segctor_sem); in nilfs_detach_log_writer()
2892 if (nilfs->ns_writer) { in nilfs_detach_log_writer()
2893 nilfs_segctor_destroy(nilfs->ns_writer); in nilfs_detach_log_writer()
2894 nilfs->ns_writer = NULL; in nilfs_detach_log_writer()
2896 set_nilfs_purging(nilfs); in nilfs_detach_log_writer()
2899 spin_lock(&nilfs->ns_inode_lock); in nilfs_detach_log_writer()
2900 if (!list_empty(&nilfs->ns_dirty_files)) { in nilfs_detach_log_writer()
2901 list_splice_init(&nilfs->ns_dirty_files, &garbage_list); in nilfs_detach_log_writer()
2905 spin_unlock(&nilfs->ns_inode_lock); in nilfs_detach_log_writer()
2906 up_write(&nilfs->ns_segctor_sem); in nilfs_detach_log_writer()
2908 nilfs_dispose_list(nilfs, &garbage_list, 1); in nilfs_detach_log_writer()
2909 clear_nilfs_purging(nilfs); in nilfs_detach_log_writer()