Lines Matching refs:sb
93 struct super_block *sb);
111 struct super_block *sb,
114 static void init_journal_hash(struct super_block *sb) in init_journal_hash() argument
116 struct reiserfs_journal *journal = SB_JOURNAL(sb); in init_journal_hash()
137 *sb) in allocate_bitmap_node()
146 bn->data = kzalloc(sb->s_blocksize, GFP_NOFS); in allocate_bitmap_node()
156 static struct reiserfs_bitmap_node *get_bitmap_node(struct super_block *sb) in get_bitmap_node() argument
158 struct reiserfs_journal *journal = SB_JOURNAL(sb); in get_bitmap_node()
168 memset(bn->data, 0, sb->s_blocksize); in get_bitmap_node()
172 bn = allocate_bitmap_node(sb); in get_bitmap_node()
179 static inline void free_bitmap_node(struct super_block *sb, in free_bitmap_node() argument
182 struct reiserfs_journal *journal = SB_JOURNAL(sb); in free_bitmap_node()
193 static void allocate_bitmap_nodes(struct super_block *sb) in allocate_bitmap_nodes() argument
196 struct reiserfs_journal *journal = SB_JOURNAL(sb); in allocate_bitmap_nodes()
199 bn = allocate_bitmap_node(sb); in allocate_bitmap_nodes()
210 static int set_bit_in_list_bitmap(struct super_block *sb, in set_bit_in_list_bitmap() argument
214 unsigned int bmap_nr = block / (sb->s_blocksize << 3); in set_bit_in_list_bitmap()
215 unsigned int bit_nr = block % (sb->s_blocksize << 3); in set_bit_in_list_bitmap()
218 jb->bitmaps[bmap_nr] = get_bitmap_node(sb); in set_bit_in_list_bitmap()
224 static void cleanup_bitmap_list(struct super_block *sb, in cleanup_bitmap_list() argument
231 for (i = 0; i < reiserfs_bmap_count(sb); i++) { in cleanup_bitmap_list()
233 free_bitmap_node(sb, jb->bitmaps[i]); in cleanup_bitmap_list()
242 static int free_list_bitmaps(struct super_block *sb, in free_list_bitmaps() argument
250 cleanup_bitmap_list(sb, jb); in free_list_bitmaps()
257 static int free_bitmap_nodes(struct super_block *sb) in free_bitmap_nodes() argument
259 struct reiserfs_journal *journal = SB_JOURNAL(sb); in free_bitmap_nodes()
279 int reiserfs_allocate_list_bitmaps(struct super_block *sb, in reiserfs_allocate_list_bitmaps() argument
293 reiserfs_warning(sb, "clm-2000", "unable to " in reiserfs_allocate_list_bitmaps()
300 free_list_bitmaps(sb, jb_array); in reiserfs_allocate_list_bitmaps()
310 static struct reiserfs_list_bitmap *get_list_bitmap(struct super_block *sb, in get_list_bitmap() argument
315 struct reiserfs_journal *journal = SB_JOURNAL(sb); in get_list_bitmap()
323 flush_commit_list(sb, in get_list_bitmap()
367 static struct reiserfs_journal_cnode *get_cnode(struct super_block *sb) in get_cnode() argument
370 struct reiserfs_journal *journal = SB_JOURNAL(sb); in get_cnode()
372 reiserfs_check_lock_depth(sb, "get_cnode"); in get_cnode()
394 static void free_cnode(struct super_block *sb, in free_cnode() argument
397 struct reiserfs_journal *journal = SB_JOURNAL(sb); in free_cnode()
399 reiserfs_check_lock_depth(sb, "free_cnode"); in free_cnode()
424 *sb, in get_journal_hash_dev()
431 cn = journal_hash(table, sb, bl); in get_journal_hash_dev()
433 if (cn->blocknr == bl && cn->sb == sb) in get_journal_hash_dev()
459 int reiserfs_in_journal(struct super_block *sb, in reiserfs_in_journal() argument
463 struct reiserfs_journal *journal = SB_JOURNAL(sb); in reiserfs_in_journal()
471 PROC_INFO_INC(sb, journal.in_journal); in reiserfs_in_journal()
480 PROC_INFO_INC(sb, journal.in_journal_bitmap); in reiserfs_in_journal()
490 sb->s_blocksize << 3, in reiserfs_in_journal()
497 bl = bmap_nr * (sb->s_blocksize << 3) + bit_nr; in reiserfs_in_journal()
501 get_journal_hash_dev(sb, journal->j_list_hash_table, bl))) { in reiserfs_in_journal()
506 if ((cn = get_journal_hash_dev(sb, journal->j_hash_table, bl))) { in reiserfs_in_journal()
511 PROC_INFO_INC(sb, journal.in_journal_reusable); in reiserfs_in_journal()
522 cn_orig = journal_hash(table, cn->sb, cn->blocknr); in insert_journal_hash()
528 journal_hash(table, cn->sb, cn->blocknr) = cn; in insert_journal_hash()
532 static inline void lock_journal(struct super_block *sb) in lock_journal() argument
534 PROC_INFO_INC(sb, journal.lock_journal); in lock_journal()
536 reiserfs_mutex_lock_safe(&SB_JOURNAL(sb)->j_mutex, sb); in lock_journal()
540 static inline void unlock_journal(struct super_block *sb) in unlock_journal() argument
542 mutex_unlock(&SB_JOURNAL(sb)->j_mutex); in unlock_journal()
566 static void cleanup_freed_for_journal_list(struct super_block *sb, in cleanup_freed_for_journal_list() argument
572 cleanup_bitmap_list(sb, jb); in cleanup_freed_for_journal_list()
1175 struct super_block *sb = cn->sb; in find_newer_jl_for_cn() local
1180 if (cn->sb == sb && cn->blocknr == blocknr && cn->jlist) { in find_newer_jl_for_cn()
1199 static void remove_all_from_journal_list(struct super_block *sb, in remove_all_from_journal_list() argument
1203 struct reiserfs_journal *journal = SB_JOURNAL(sb); in remove_all_from_journal_list()
1214 reiserfs_warning(sb, "reiserfs-2201", in remove_all_from_journal_list()
1220 remove_journal_hash(sb, journal->j_list_hash_table, in remove_all_from_journal_list()
1225 free_cnode(sb, last); in remove_all_from_journal_list()
1238 static int _update_journal_header_block(struct super_block *sb, in _update_journal_header_block() argument
1243 struct reiserfs_journal *journal = SB_JOURNAL(sb); in _update_journal_header_block()
1251 depth = reiserfs_write_unlock_nested(sb); in _update_journal_header_block()
1253 reiserfs_write_lock_nested(sb, depth); in _update_journal_header_block()
1256 reiserfs_warning(sb, "journal-699", in _update_journal_header_block()
1271 depth = reiserfs_write_unlock_nested(sb); in _update_journal_header_block()
1273 if (reiserfs_barrier_flush(sb)) in _update_journal_header_block()
1278 reiserfs_write_lock_nested(sb, depth); in _update_journal_header_block()
1280 reiserfs_warning(sb, "journal-837", in _update_journal_header_block()
1288 static int update_journal_header_block(struct super_block *sb, in update_journal_header_block() argument
1292 return _update_journal_header_block(sb, offset, trans_id); in update_journal_header_block()
1299 static int flush_older_journal_lists(struct super_block *sb, in flush_older_journal_lists() argument
1304 struct reiserfs_journal *journal = SB_JOURNAL(sb); in flush_older_journal_lists()
1320 flush_journal_list(sb, other_jl, 0); in flush_older_journal_lists()
1845 void remove_journal_hash(struct super_block *sb, in remove_journal_hash() argument
1853 head = &(journal_hash(table, sb, block)); in remove_journal_hash()
1859 if (cur->blocknr == block && cur->sb == sb in remove_journal_hash()
1871 cur->sb = NULL; in remove_journal_hash()
1886 static void free_journal_ram(struct super_block *sb) in free_journal_ram() argument
1888 struct reiserfs_journal *journal = SB_JOURNAL(sb); in free_journal_ram()
1893 free_list_bitmaps(sb, journal->j_list_bitmap); in free_journal_ram()
1894 free_bitmap_nodes(sb); /* must be after free_list_bitmaps */ in free_journal_ram()
1902 release_journal_dev(sb, journal); in free_journal_ram()
1911 struct super_block *sb, int error) in do_journal_release() argument
1915 struct reiserfs_journal *journal = SB_JOURNAL(sb); in do_journal_release()
1921 if (!error && !(sb->s_flags & MS_RDONLY)) { in do_journal_release()
1930 if (!journal_join(&myth, sb)) { in do_journal_release()
1931 reiserfs_prepare_for_journal(sb, in do_journal_release()
1932 SB_BUFFER_WITH_SB(sb), in do_journal_release()
1934 journal_mark_dirty(&myth, SB_BUFFER_WITH_SB(sb)); in do_journal_release()
1943 if (!journal_join_abort(&myth, sb)) { in do_journal_release()
1944 reiserfs_prepare_for_journal(sb, in do_journal_release()
1945 SB_BUFFER_WITH_SB(sb), in do_journal_release()
1947 journal_mark_dirty(&myth, SB_BUFFER_WITH_SB(sb)); in do_journal_release()
1957 reiserfs_write_unlock(sb); in do_journal_release()
1964 cancel_delayed_work_sync(&REISERFS_SB(sb)->old_work); in do_journal_release()
1966 cancel_delayed_work_sync(&SB_JOURNAL(sb)->j_work); in do_journal_release()
1968 free_journal_ram(sb); in do_journal_release()
1970 reiserfs_write_lock(sb); in do_journal_release()
1977 struct super_block *sb) in journal_release() argument
1979 return do_journal_release(th, sb, 0); in journal_release()
1984 struct super_block *sb) in journal_release_error() argument
1986 return do_journal_release(th, sb, 1); in journal_release_error()
1993 static int journal_compare_desc_commit(struct super_block *sb, in journal_compare_desc_commit() argument
1999 get_commit_trans_len(commit) > SB_JOURNAL(sb)->j_trans_max || in journal_compare_desc_commit()
2012 static int journal_transaction_is_valid(struct super_block *sb, in journal_transaction_is_valid() argument
2030 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_transaction_is_valid()
2040 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_transaction_is_valid()
2048 if (get_desc_trans_len(desc) > SB_JOURNAL(sb)->j_trans_max) { in journal_transaction_is_valid()
2049 reiserfs_warning(sb, "journal-2018", in journal_transaction_is_valid()
2055 offset = d_bh->b_blocknr - SB_ONDISK_JOURNAL_1st_BLOCK(sb); in journal_transaction_is_valid()
2062 journal_bread(sb, in journal_transaction_is_valid()
2063 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_transaction_is_valid()
2065 1) % SB_ONDISK_JOURNAL_SIZE(sb))); in journal_transaction_is_valid()
2069 if (journal_compare_desc_commit(sb, desc, commit)) { in journal_transaction_is_valid()
2070 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_transaction_is_valid()
2074 SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_transaction_is_valid()
2081 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_transaction_is_valid()
2090 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_transaction_is_valid()
2094 SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_transaction_is_valid()
2117 static int journal_read_transaction(struct super_block *sb, in journal_read_transaction() argument
2123 struct reiserfs_journal *journal = SB_JOURNAL(sb); in journal_read_transaction()
2135 d_bh = journal_bread(sb, cur_dblock); in journal_read_transaction()
2139 trans_offset = d_bh->b_blocknr - SB_ONDISK_JOURNAL_1st_BLOCK(sb); in journal_read_transaction()
2140 reiserfs_debug(sb, REISERFS_DEBUG_CODE, "journal-1037: " in journal_read_transaction()
2142 d_bh->b_blocknr - SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_read_transaction()
2145 reiserfs_debug(sb, REISERFS_DEBUG_CODE, "journal-1039: " in journal_read_transaction()
2148 SB_ONDISK_JOURNAL_1st_BLOCK(sb)); in journal_read_transaction()
2153 reiserfs_debug(sb, REISERFS_DEBUG_CODE, "journal-1146: " in journal_read_transaction()
2160 c_bh = journal_bread(sb, SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read_transaction()
2162 SB_ONDISK_JOURNAL_SIZE(sb))); in journal_read_transaction()
2168 if (journal_compare_desc_commit(sb, desc, commit)) { in journal_read_transaction()
2169 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read_transaction()
2173 SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_read_transaction()
2181 if (bdev_read_only(sb->s_bdev)) { in journal_read_transaction()
2182 reiserfs_warning(sb, "clm-2076", in journal_read_transaction()
2203 reiserfs_warning(sb, "journal-1169", in journal_read_transaction()
2208 trans_half = journal_trans_half(sb->s_blocksize); in journal_read_transaction()
2211 journal_getblk(sb, in journal_read_transaction()
2212 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read_transaction()
2214 i) % SB_ONDISK_JOURNAL_SIZE(sb)); in journal_read_transaction()
2217 sb_getblk(sb, in journal_read_transaction()
2221 sb_getblk(sb, in journal_read_transaction()
2225 if (real_blocks[i]->b_blocknr > SB_BLOCK_COUNT(sb)) { in journal_read_transaction()
2226 reiserfs_warning(sb, "journal-1207", in journal_read_transaction()
2234 (sb, real_blocks[i]->b_blocknr)) { in journal_read_transaction()
2235 reiserfs_warning(sb, "journal-1204", in journal_read_transaction()
2254 reiserfs_warning(sb, "journal-1212", in journal_read_transaction()
2279 reiserfs_warning(sb, "journal-1226", in journal_read_transaction()
2293 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read_transaction()
2295 2) % SB_ONDISK_JOURNAL_SIZE(sb)); in journal_read_transaction()
2296 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read_transaction()
2298 cur_dblock - SB_ONDISK_JOURNAL_1st_BLOCK(sb)); in journal_read_transaction()
2304 journal->j_start = cur_dblock - SB_ONDISK_JOURNAL_1st_BLOCK(sb); in journal_read_transaction()
2374 static int journal_read(struct super_block *sb) in journal_read() argument
2376 struct reiserfs_journal *journal = SB_JOURNAL(sb); in journal_read()
2392 cur_dblock = SB_ONDISK_JOURNAL_1st_BLOCK(sb); in journal_read()
2393 reiserfs_info(sb, "checking transaction log (%s)\n", in journal_read()
2402 journal->j_header_bh = journal_bread(sb, in journal_read()
2403 SB_ONDISK_JOURNAL_1st_BLOCK(sb) in journal_read()
2404 + SB_ONDISK_JOURNAL_SIZE(sb)); in journal_read()
2410 SB_ONDISK_JOURNAL_SIZE(sb) in journal_read()
2413 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read()
2417 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2430 journal_bread(sb, in journal_read()
2431 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read()
2433 ret = journal_transaction_is_valid(sb, d_bh, NULL, NULL); in journal_read()
2448 (SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read()
2449 SB_ONDISK_JOURNAL_SIZE(sb))) { in journal_read()
2456 sb->s_blocksize, in journal_read()
2457 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_read()
2458 SB_ONDISK_JOURNAL_SIZE(sb)); in journal_read()
2460 journal_transaction_is_valid(sb, d_bh, in journal_read()
2469 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2474 (sb), oldest_trans_id); in journal_read()
2479 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2484 (sb), oldest_trans_id); in journal_read()
2488 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2503 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2506 cur_dblock - SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_read()
2513 journal_read_transaction(sb, cur_dblock, oldest_start, in journal_read()
2521 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + journal->j_start; in journal_read()
2528 reiserfs_debug(sb, REISERFS_DEBUG_CODE, in journal_read()
2550 reiserfs_debug(sb, REISERFS_DEBUG_CODE, "journal-1299: Setting " in journal_read()
2554 reiserfs_info(sb, in journal_read()
2559 reiserfs_write_lock(sb); in journal_read()
2560 if (!bdev_read_only(sb->s_bdev) && in journal_read()
2561 _update_journal_header_block(sb, journal->j_start, in journal_read()
2563 reiserfs_write_unlock(sb); in journal_read()
2570 reiserfs_write_unlock(sb); in journal_read()
2589 static void journal_list_init(struct super_block *sb) in journal_list_init() argument
2591 SB_JOURNAL(sb)->j_current_jl = alloc_journal_list(sb); in journal_list_init()
2673 static int check_advise_trans_params(struct super_block *sb, in check_advise_trans_params() argument
2679 if (sb->s_blocksize < REISERFS_STANDARD_BLKSIZE) in check_advise_trans_params()
2680 ratio = REISERFS_STANDARD_BLKSIZE / sb->s_blocksize; in check_advise_trans_params()
2684 SB_ONDISK_JOURNAL_SIZE(sb) / journal->j_trans_max < in check_advise_trans_params()
2686 reiserfs_warning(sb, "sh-462", in check_advise_trans_params()
2693 reiserfs_warning(sb, "sh-463", in check_advise_trans_params()
2705 if (sb->s_blocksize != REISERFS_STANDARD_BLKSIZE) { in check_advise_trans_params()
2706 reiserfs_warning(sb, "sh-464", "bad blocksize (%u)", in check_advise_trans_params()
2707 sb->s_blocksize); in check_advise_trans_params()
2718 int journal_init(struct super_block *sb, const char *j_dev_name, in journal_init() argument
2721 int num_cnodes = SB_ONDISK_JOURNAL_SIZE(sb) * 2; in journal_init()
2730 journal = SB_JOURNAL(sb) = vzalloc(sizeof(struct reiserfs_journal)); in journal_init()
2732 reiserfs_warning(sb, "journal-1256", in journal_init()
2741 if (reiserfs_allocate_list_bitmaps(sb, journal->j_list_bitmap, in journal_init()
2742 reiserfs_bmap_count(sb))) in journal_init()
2745 allocate_bitmap_nodes(sb); in journal_init()
2748 SB_JOURNAL_1st_RESERVED_BLOCK(sb) = (old_format ? in journal_init()
2750 / sb->s_blocksize + in journal_init()
2751 reiserfs_bmap_count(sb) + in journal_init()
2754 sb->s_blocksize + 2); in journal_init()
2760 if (!SB_ONDISK_JOURNAL_DEVICE(sb) && in journal_init()
2761 (SB_JOURNAL_1st_RESERVED_BLOCK(sb) + in journal_init()
2762 SB_ONDISK_JOURNAL_SIZE(sb) > sb->s_blocksize * 8)) { in journal_init()
2763 reiserfs_warning(sb, "journal-1393", in journal_init()
2767 SB_JOURNAL_1st_RESERVED_BLOCK(sb), in journal_init()
2768 SB_ONDISK_JOURNAL_SIZE(sb), in journal_init()
2769 sb->s_blocksize); in journal_init()
2773 if (journal_init_dev(sb, journal, j_dev_name) != 0) { in journal_init()
2774 reiserfs_warning(sb, "sh-462", in journal_init()
2779 rs = SB_DISK_SUPER_BLOCK(sb); in journal_init()
2782 bhjh = journal_bread(sb, in journal_init()
2783 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in journal_init()
2784 SB_ONDISK_JOURNAL_SIZE(sb)); in journal_init()
2786 reiserfs_warning(sb, "sh-459", in journal_init()
2796 reiserfs_warning(sb, "sh-460", in journal_init()
2812 if (check_advise_trans_params(sb, journal) != 0) in journal_init()
2821 reiserfs_info(sb, "journal params: device %s, size %u, " in journal_init()
2825 SB_ONDISK_JOURNAL_SIZE(sb), in journal_init()
2826 SB_ONDISK_JOURNAL_1st_BLOCK(sb), in journal_init()
2834 journal_list_init(sb); in journal_init()
2866 reiserfs_warning(sb, "journal-2004", "Journal cnode memory " in journal_init()
2874 init_journal_hash(sb); in journal_init()
2882 reiserfs_write_lock(sb); in journal_init()
2883 jl->j_list_bitmap = get_list_bitmap(sb, jl); in journal_init()
2884 reiserfs_write_unlock(sb); in journal_init()
2886 reiserfs_warning(sb, "journal-2005", in journal_init()
2891 ret = journal_read(sb); in journal_init()
2893 reiserfs_warning(sb, "reiserfs-2006", in journal_init()
2899 journal->j_work_sb = sb; in journal_init()
2902 free_journal_ram(sb); in journal_init()
2988 static void let_transaction_grow(struct super_block *sb, unsigned int trans_id) in let_transaction_grow() argument
2990 struct reiserfs_journal *journal = SB_JOURNAL(sb); in let_transaction_grow()
2995 depth = reiserfs_write_unlock_nested(sb); in let_transaction_grow()
2997 reiserfs_write_lock_nested(sb, depth); in let_transaction_grow()
3003 queue_log_writer(sb); in let_transaction_grow()
3021 struct super_block *sb, unsigned long nblocks, in do_journal_begin_r() argument
3026 struct reiserfs_journal *journal = SB_JOURNAL(sb); in do_journal_begin_r()
3032 reiserfs_check_lock_depth(sb, "journal_begin"); in do_journal_begin_r()
3035 PROC_INFO_INC(sb, journal.journal_being); in do_journal_begin_r()
3038 th->t_super = sb; in do_journal_begin_r()
3041 lock_journal(sb); in do_journal_begin_r()
3043 unlock_journal(sb); in do_journal_begin_r()
3050 unlock_journal(sb); in do_journal_begin_r()
3051 depth = reiserfs_write_unlock_nested(sb); in do_journal_begin_r()
3052 reiserfs_wait_on_write_block(sb); in do_journal_begin_r()
3053 reiserfs_write_lock_nested(sb, depth); in do_journal_begin_r()
3054 PROC_INFO_INC(sb, journal.journal_relock_writers); in do_journal_begin_r()
3078 unlock_journal(sb); in do_journal_begin_r()
3086 queue_log_writer(sb); in do_journal_begin_r()
3097 queue_log_writer(sb); in do_journal_begin_r()
3101 retval = journal_join(&myth, sb); in do_journal_begin_r()
3115 PROC_INFO_INC(sb, journal.journal_relock_wcount); in do_journal_begin_r()
3127 unlock_journal(sb); in do_journal_begin_r()
3138 th->t_super = sb; in do_journal_begin_r()
3190 struct super_block *sb) in journal_join() argument
3200 return do_journal_begin_r(th, sb, 1, JBEGIN_JOIN); in journal_join()
3204 struct super_block *sb) in journal_join_abort() argument
3214 return do_journal_begin_r(th, sb, 1, JBEGIN_ABORT); in journal_join_abort()
3218 struct super_block *sb, unsigned long nblocks) in journal_begin() argument
3226 if (cur_th->t_super == sb) { in journal_begin()
3231 reiserfs_warning(sb, "reiserfs-2005", in journal_begin()
3241 reiserfs_warning(sb, "clm-2100", in journal_begin()
3249 ret = do_journal_begin_r(th, sb, nblocks, JBEGIN_REG); in journal_begin()
3277 struct super_block *sb = th->t_super; in journal_mark_dirty() local
3278 struct reiserfs_journal *journal = SB_JOURNAL(sb); in journal_mark_dirty()
3284 PROC_INFO_INC(sb, journal.mark_dirty); in journal_mark_dirty()
3295 PROC_INFO_INC(sb, journal.mark_dirty_already); in journal_mark_dirty()
3305 reiserfs_warning(sb, "journal-1777", in journal_mark_dirty()
3316 reiserfs_warning(sb, "journal-1409", in journal_mark_dirty()
3334 PROC_INFO_INC(sb, journal.mark_dirty_notjournal); in journal_mark_dirty()
3346 cn = get_cnode(sb); in journal_mark_dirty()
3348 reiserfs_panic(sb, "journal-4", "get_cnode failed!"); in journal_mark_dirty()
3360 cn->sb = sb; in journal_mark_dirty()
3377 reiserfs_schedule_old_flush(sb); in journal_mark_dirty()
3383 struct super_block *sb = th->t_super; in journal_end() local
3385 reiserfs_warning(sb, "REISER-NESTING", in journal_end()
3422 static int remove_from_transaction(struct super_block *sb, in remove_from_transaction() argument
3427 struct reiserfs_journal *journal = SB_JOURNAL(sb); in remove_from_transaction()
3430 cn = get_journal_hash_dev(sb, journal->j_hash_table, blocknr); in remove_from_transaction()
3448 remove_journal_hash(sb, journal->j_hash_table, NULL, in remove_from_transaction()
3458 reiserfs_warning(sb, "journal-1752", in remove_from_transaction()
3465 free_cnode(sb, cn); in remove_from_transaction()
3482 struct super_block *sb = cn->sb; in can_dirty() local
3493 if (cur->jlist && cur->bh && cur->blocknr && cur->sb == sb && in can_dirty()
3507 cur->blocknr && cur->sb == sb && cur->blocknr == blocknr) { in can_dirty()
3521 struct super_block *sb = th->t_super; in journal_end_sync() local
3522 struct reiserfs_journal *journal = SB_JOURNAL(sb); in journal_end_sync()
3528 reiserfs_prepare_for_journal(sb, SB_BUFFER_WITH_SB(sb), in journal_end_sync()
3530 journal_mark_dirty(th, SB_BUFFER_WITH_SB(sb)); in journal_end_sync()
3540 struct super_block *sb = journal->j_work_sb; in flush_async_commits() local
3544 reiserfs_write_lock(sb); in flush_async_commits()
3549 flush_commit_list(sb, jl, 1); in flush_async_commits()
3551 reiserfs_write_unlock(sb); in flush_async_commits()
3558 void reiserfs_flush_old_commits(struct super_block *sb) in reiserfs_flush_old_commits() argument
3562 struct reiserfs_journal *journal = SB_JOURNAL(sb); in reiserfs_flush_old_commits()
3580 if (!journal_join(&th, sb)) { in reiserfs_flush_old_commits()
3581 reiserfs_prepare_for_journal(sb, in reiserfs_flush_old_commits()
3582 SB_BUFFER_WITH_SB(sb), in reiserfs_flush_old_commits()
3584 journal_mark_dirty(&th, SB_BUFFER_WITH_SB(sb)); in reiserfs_flush_old_commits()
3619 struct super_block *sb = th->t_super; in check_journal_end() local
3620 struct reiserfs_journal *journal = SB_JOURNAL(sb); in check_journal_end()
3663 unlock_journal(sb); in check_journal_end()
3671 queue_log_writer(sb); in check_journal_end()
3673 lock_journal(sb); in check_journal_end()
3678 unlock_journal(sb); in check_journal_end()
3684 && journal_list_still_alive(sb, trans_id) in check_journal_end()
3686 flush_commit_list(sb, jl, 1); in check_journal_end()
3690 unlock_journal(sb); in check_journal_end()
3707 unlock_journal(sb); in check_journal_end()
3711 if (journal->j_start > SB_ONDISK_JOURNAL_SIZE(sb)) { in check_journal_end()
3712 reiserfs_panic(sb, "journal-003", in check_journal_end()
3737 struct super_block *sb, b_blocknr_t blocknr) in journal_mark_freed() argument
3739 struct reiserfs_journal *journal = SB_JOURNAL(sb); in journal_mark_freed()
3746 cn = get_journal_hash_dev(sb, journal->j_hash_table, blocknr); in journal_mark_freed()
3756 cleaned = remove_from_transaction(sb, blocknr, cleaned); in journal_mark_freed()
3764 reiserfs_panic(sb, "journal-1702", in journal_mark_freed()
3767 set_bit_in_list_bitmap(sb, blocknr, jb); in journal_mark_freed()
3775 cleaned = remove_from_transaction(sb, blocknr, cleaned); in journal_mark_freed()
3781 cn = get_journal_hash_dev(sb, journal->j_list_hash_table, in journal_mark_freed()
3784 if (sb == cn->sb && blocknr == cn->blocknr) { in journal_mark_freed()
3802 reiserfs_warning(sb, in journal_mark_freed()
3842 struct super_block *sb = inode->i_sb; in __commit_trans_jl() local
3843 struct reiserfs_journal *journal = SB_JOURNAL(sb); in __commit_trans_jl()
3856 let_transaction_grow(sb, id); in __commit_trans_jl()
3861 ret = journal_begin(&th, sb, 1); in __commit_trans_jl()
3867 reiserfs_prepare_for_journal(sb, SB_BUFFER_WITH_SB(sb), in __commit_trans_jl()
3869 journal_mark_dirty(&th, SB_BUFFER_WITH_SB(sb)); in __commit_trans_jl()
3893 flush_commit_list(sb, jl, 1); in __commit_trans_jl()
3920 void reiserfs_restore_prepared_buffer(struct super_block *sb, in reiserfs_restore_prepared_buffer() argument
3923 struct reiserfs_journal *journal = SB_JOURNAL(sb); in reiserfs_restore_prepared_buffer()
3924 PROC_INFO_INC(sb, journal.restore_prepared); in reiserfs_restore_prepared_buffer()
3931 reiserfs_write_lock(sb); in reiserfs_restore_prepared_buffer()
3932 cn = get_journal_hash_dev(sb, in reiserfs_restore_prepared_buffer()
3939 reiserfs_write_unlock(sb); in reiserfs_restore_prepared_buffer()
3951 int reiserfs_prepare_for_journal(struct super_block *sb, in reiserfs_prepare_for_journal() argument
3954 PROC_INFO_INC(sb, journal.prepare); in reiserfs_prepare_for_journal()
3982 struct super_block *sb = th->t_super; in do_journal_end() local
3983 struct reiserfs_journal *journal = SB_JOURNAL(sb); in do_journal_end()
4016 reiserfs_check_lock_depth(sb, "journal end"); in do_journal_end()
4018 reiserfs_prepare_for_journal(sb, SB_BUFFER_WITH_SB(sb), in do_journal_end()
4020 journal_mark_dirty(th, SB_BUFFER_WITH_SB(sb)); in do_journal_end()
4023 lock_journal(sb); in do_journal_end()
4039 reiserfs_schedule_old_flush(sb); in do_journal_end()
4040 wake_queued_writers(sb); in do_journal_end()
4041 reiserfs_async_progress_wait(sb); in do_journal_end()
4074 journal_getblk(sb, in do_journal_end()
4075 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in do_journal_end()
4087 c_bh = journal_getblk(sb, SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in do_journal_end()
4089 1) % SB_ONDISK_JOURNAL_SIZE(sb))); in do_journal_end()
4104 reiserfs_mutex_lock_safe(&jl->j_commit_mutex, sb); in do_journal_end()
4124 trans_half = journal_trans_half(sb->s_blocksize); in do_journal_end()
4127 jl_cn = get_cnode(sb); in do_journal_end()
4129 reiserfs_panic(sb, "journal-1676", in do_journal_end()
4146 (sb, cn->bh->b_blocknr)) { in do_journal_end()
4147 reiserfs_panic(sb, "journal-2332", in do_journal_end()
4154 jl_cn->sb = sb; in do_journal_end()
4202 journal_getblk(sb, in do_journal_end()
4203 SB_ONDISK_JOURNAL_1st_BLOCK(sb) + in do_journal_end()
4206 SB_ONDISK_JOURNAL_SIZE(sb))); in do_journal_end()
4223 reiserfs_warning(sb, "journal-2048", in do_journal_end()
4229 free_cnode(sb, cn); in do_journal_end()
4231 reiserfs_cond_resched(sb); in do_journal_end()
4240 journal->j_current_jl = alloc_journal_list(sb); in do_journal_end()
4251 2) % SB_ONDISK_JOURNAL_SIZE(sb); in do_journal_end()
4266 init_journal_hash(sb); in do_journal_end()
4282 depth = reiserfs_write_unlock_nested(sb); in do_journal_end()
4285 reiserfs_write_lock_nested(sb, depth); in do_journal_end()
4299 flush_commit_list(sb, jl, 1); in do_journal_end()
4300 flush_journal_list(sb, jl, 1); in do_journal_end()
4306 if (sb->s_flags & MS_ACTIVE) in do_journal_end()
4307 queue_delayed_work(REISERFS_SB(sb)->commit_wq, in do_journal_end()
4322 flush_used_journal_lists(sb, temp_jl); in do_journal_end()
4326 SB_ONDISK_JOURNAL_SIZE(sb)) { in do_journal_end()
4337 SB_ONDISK_JOURNAL_SIZE(sb)) { in do_journal_end()
4339 SB_ONDISK_JOURNAL_SIZE(sb)) >= in do_journal_end()
4341 flush_used_journal_lists(sb, temp_jl); in do_journal_end()
4356 get_list_bitmap(sb, journal->j_current_jl); in do_journal_end()
4359 reiserfs_panic(sb, "journal-1996", in do_journal_end()
4364 unlock_journal(sb); in do_journal_end()
4370 journal_list_still_alive(sb, commit_trans_id)) { in do_journal_end()
4371 flush_commit_list(sb, jl, 1); in do_journal_end()
4374 reiserfs_check_lock_depth(sb, "journal end2"); in do_journal_end()
4382 th->t_super = sb; in do_journal_end()
4388 void reiserfs_abort_journal(struct super_block *sb, int errno) in reiserfs_abort_journal() argument
4390 struct reiserfs_journal *journal = SB_JOURNAL(sb); in reiserfs_abort_journal()
4397 sb->s_flags |= MS_RDONLY; in reiserfs_abort_journal()