Lines Matching refs:jl

88 			      struct reiserfs_journal_list *jl, int flushall);
90 struct reiserfs_journal_list *jl, int flushall);
97 struct reiserfs_journal_list *jl);
312 *jl) in get_list_bitmap()
336 jb->journal_list = jl; in get_list_bitmap()
545 static inline void get_journal_list(struct reiserfs_journal_list *jl) in get_journal_list() argument
547 jl->j_refcount++; in get_journal_list()
551 struct reiserfs_journal_list *jl) in put_journal_list() argument
553 if (jl->j_refcount < 1) { in put_journal_list()
555 jl->j_trans_id, jl->j_refcount); in put_journal_list()
557 if (--jl->j_refcount == 0) in put_journal_list()
558 kfree(jl); in put_journal_list()
567 struct reiserfs_journal_list *jl) in cleanup_freed_for_journal_list() argument
570 struct reiserfs_list_bitmap *jb = jl->j_list_bitmap; in cleanup_freed_for_journal_list()
574 jl->j_list_bitmap->journal_list = NULL; in cleanup_freed_for_journal_list()
575 jl->j_list_bitmap = NULL; in cleanup_freed_for_journal_list()
583 struct reiserfs_journal_list *jl; in journal_list_still_alive() local
586 jl = JOURNAL_LIST_ENTRY(entry->next); in journal_list_still_alive()
587 if (jl->j_trans_id <= trans_id) { in journal_list_still_alive()
774 jh->jl = j->j_current_jl; in __add_jh()
776 list_add_tail(&jh->list, &jh->jl->j_tail_bh_list); in __add_jh()
778 list_add_tail(&jh->list, &jh->jl->j_bh_list); in __add_jh()
796 struct reiserfs_journal_list *jl, in write_ordered_buffers() argument
886 struct reiserfs_journal_list *jl) in flush_older_commits() argument
892 unsigned int trans_id = jl->j_trans_id; in flush_older_commits()
900 first_jl = jl; in flush_older_commits()
901 entry = jl->j_list.prev; in flush_older_commits()
913 if (first_jl == jl) { in flush_older_commits()
976 struct reiserfs_journal_list *jl, int flushall) in flush_commit_list() argument
981 unsigned int trans_id = jl->j_trans_id; in flush_commit_list()
989 if (atomic_read(&jl->j_older_commits_done)) { in flush_commit_list()
997 BUG_ON(jl->j_len <= 0); in flush_commit_list()
1000 get_journal_list(jl); in flush_commit_list()
1002 if (flush_older_commits(s, jl) == 1) { in flush_commit_list()
1012 reiserfs_mutex_lock_safe(&jl->j_commit_mutex, s); in flush_commit_list()
1015 mutex_unlock(&jl->j_commit_mutex); in flush_commit_list()
1018 BUG_ON(jl->j_trans_id == 0); in flush_commit_list()
1021 if (atomic_read(&jl->j_commit_left) <= 0) { in flush_commit_list()
1023 atomic_set(&jl->j_older_commits_done, 1); in flush_commit_list()
1025 mutex_unlock(&jl->j_commit_mutex); in flush_commit_list()
1029 if (!list_empty(&jl->j_bh_list)) { in flush_commit_list()
1038 journal, jl, &jl->j_bh_list); in flush_commit_list()
1043 BUG_ON(!list_empty(&jl->j_bh_list)); in flush_commit_list()
1052 write_len = jl->j_len + 1; in flush_commit_list()
1056 bn = SB_ONDISK_JOURNAL_1st_BLOCK(s) + (jl->j_start + i) % in flush_commit_list()
1070 for (i = 0; i < (jl->j_len + 1); i++) { in flush_commit_list()
1072 (jl->j_start + i) % SB_ONDISK_JOURNAL_SIZE(s); in flush_commit_list()
1099 atomic_dec(&jl->j_commit_left); in flush_commit_list()
1102 BUG_ON(atomic_read(&jl->j_commit_left) != 1); in flush_commit_list()
1111 if (buffer_dirty(jl->j_commit_bh)) in flush_commit_list()
1113 mark_buffer_dirty(jl->j_commit_bh) ; in flush_commit_list()
1116 __sync_dirty_buffer(jl->j_commit_bh, WRITE_FLUSH_FUA); in flush_commit_list()
1118 sync_dirty_buffer(jl->j_commit_bh); in flush_commit_list()
1127 if (unlikely(!buffer_uptodate(jl->j_commit_bh))) { in flush_commit_list()
1133 bforget(jl->j_commit_bh); in flush_commit_list()
1135 (jl->j_trans_id - journal->j_last_commit_id) != 1) { in flush_commit_list()
1137 journal->j_last_commit_id, jl->j_trans_id); in flush_commit_list()
1139 journal->j_last_commit_id = jl->j_trans_id; in flush_commit_list()
1145 cleanup_freed_for_journal_list(s, jl); in flush_commit_list()
1151 dirty_one_transaction(s, jl); in flush_commit_list()
1152 atomic_dec(&jl->j_commit_left); in flush_commit_list()
1155 atomic_set(&jl->j_older_commits_done, 1); in flush_commit_list()
1157 mutex_unlock(&jl->j_commit_mutex); in flush_commit_list()
1159 put_journal_list(s, jl); in flush_commit_list()
1200 struct reiserfs_journal_list *jl, in remove_all_from_journal_list() argument
1205 cn = jl->j_realblock; in remove_all_from_journal_list()
1221 jl, cn->blocknr, 1); in remove_all_from_journal_list()
1227 jl->j_realblock = NULL; in remove_all_from_journal_list()
1300 struct reiserfs_journal_list *jl) in flush_older_journal_lists() argument
1305 unsigned int trans_id = jl->j_trans_id; in flush_older_journal_lists()
1329 struct reiserfs_journal_list *jl) in del_from_work_list() argument
1332 if (!list_empty(&jl->j_working_list)) { in del_from_work_list()
1333 list_del_init(&jl->j_working_list); in del_from_work_list()
1349 struct reiserfs_journal_list *jl, int flushall) in flush_journal_list() argument
1357 unsigned long j_len_saved = jl->j_len; in flush_journal_list()
1379 j_len_saved, jl->j_trans_id); in flush_journal_list()
1384 if (atomic_read(&jl->j_nonzerolen) <= 0 && in flush_journal_list()
1385 atomic_read(&jl->j_commit_left) <= 0) { in flush_journal_list()
1393 flush_commit_list(s, jl, 1); in flush_journal_list()
1395 if (!(jl->j_state & LIST_DIRTY) in flush_journal_list()
1400 if (atomic_read(&jl->j_nonzerolen) <= 0 && in flush_journal_list()
1401 atomic_read(&jl->j_commit_left) <= 0) { in flush_journal_list()
1413 cn = jl->j_realblock; in flush_journal_list()
1427 if (!(jl->j_state & LIST_DIRTY)) in flush_journal_list()
1525 cn = jl->j_realblock; in flush_journal_list()
1578 flush_older_journal_lists(s, jl); in flush_journal_list()
1594 (jl->j_start + jl->j_len + in flush_journal_list()
1596 jl->j_trans_id); in flush_journal_list()
1602 remove_all_from_journal_list(s, jl, 0); in flush_journal_list()
1603 list_del_init(&jl->j_list); in flush_journal_list()
1605 del_from_work_list(s, jl); in flush_journal_list()
1608 (jl->j_trans_id - journal->j_last_flush_id) != 1) { in flush_journal_list()
1610 journal->j_last_flush_id, jl->j_trans_id); in flush_journal_list()
1612 journal->j_last_flush_id = jl->j_trans_id; in flush_journal_list()
1618 jl->j_len = 0; in flush_journal_list()
1619 atomic_set(&jl->j_nonzerolen, 0); in flush_journal_list()
1620 jl->j_start = 0; in flush_journal_list()
1621 jl->j_realblock = NULL; in flush_journal_list()
1622 jl->j_commit_bh = NULL; in flush_journal_list()
1623 jl->j_trans_id = 0; in flush_journal_list()
1624 jl->j_state = 0; in flush_journal_list()
1625 put_journal_list(s, jl); in flush_journal_list()
1632 struct reiserfs_journal_list *jl, in write_one_transaction() argument
1638 jl->j_state |= LIST_TOUCHED; in write_one_transaction()
1639 del_from_work_list(s, jl); in write_one_transaction()
1640 if (jl->j_len == 0 || atomic_read(&jl->j_nonzerolen) == 0) { in write_one_transaction()
1644 cn = jl->j_realblock; in write_one_transaction()
1684 struct reiserfs_journal_list *jl) in dirty_one_transaction() argument
1690 jl->j_state |= LIST_DIRTY; in dirty_one_transaction()
1691 cn = jl->j_realblock; in dirty_one_transaction()
1721 struct reiserfs_journal_list *jl, in kupdate_transactions() argument
1729 unsigned int orig_trans_id = jl->j_trans_id; in kupdate_transactions()
1747 if (jl->j_len == 0 || (jl->j_state & LIST_TOUCHED) || in kupdate_transactions()
1748 atomic_read(&jl->j_commit_left) in kupdate_transactions()
1749 || !(jl->j_state & LIST_DIRTY)) { in kupdate_transactions()
1750 del_from_work_list(s, jl); in kupdate_transactions()
1753 ret = write_one_transaction(s, jl, &chunk); in kupdate_transactions()
1759 entry = jl->j_list.next; in kupdate_transactions()
1765 jl = JOURNAL_LIST_ENTRY(entry); in kupdate_transactions()
1768 if (jl->j_trans_id <= orig_trans_id) in kupdate_transactions()
1791 struct reiserfs_journal_list *jl) in flush_used_journal_lists() argument
1803 flush_jl = tjl = jl; in flush_used_journal_lists()
1811 tjl->j_trans_id < jl->j_trans_id) { in flush_used_journal_lists()
1824 get_journal_list(jl); in flush_used_journal_lists()
1832 if (flush_jl != jl) { in flush_used_journal_lists()
1833 ret = kupdate_transactions(s, jl, &tjl, &trans_id, len, i); in flush_used_journal_lists()
1837 put_journal_list(s, jl); in flush_used_journal_lists()
1847 struct reiserfs_journal_list *jl, in remove_journal_hash() argument
1860 && (jl == NULL || jl == cur->jlist) in remove_journal_hash()
2576 struct reiserfs_journal_list *jl; in alloc_journal_list() local
2577 jl = kzalloc(sizeof(struct reiserfs_journal_list), in alloc_journal_list()
2579 INIT_LIST_HEAD(&jl->j_list); in alloc_journal_list()
2580 INIT_LIST_HEAD(&jl->j_working_list); in alloc_journal_list()
2581 INIT_LIST_HEAD(&jl->j_tail_bh_list); in alloc_journal_list()
2582 INIT_LIST_HEAD(&jl->j_bh_list); in alloc_journal_list()
2583 mutex_init(&jl->j_commit_mutex); in alloc_journal_list()
2585 get_journal_list(jl); in alloc_journal_list()
2586 return jl; in alloc_journal_list()
2726 struct reiserfs_journal_list *jl; in journal_init() local
2875 jl = journal->j_current_jl; in journal_init()
2883 jl->j_list_bitmap = get_list_bitmap(sb, jl); in journal_init()
2885 if (!jl->j_list_bitmap) { in journal_init()
3541 struct reiserfs_journal_list *jl; in flush_async_commits() local
3548 jl = JOURNAL_LIST_ENTRY(entry); in flush_async_commits()
3549 flush_commit_list(sb, jl, 1); in flush_async_commits()
3618 struct reiserfs_journal_list *jl; in check_journal_end() local
3655 jl = journal->j_current_jl; in check_journal_end()
3656 trans_id = jl->j_trans_id; in check_journal_end()
3658 jl->j_state |= LIST_COMMIT_PENDING; in check_journal_end()
3686 flush_commit_list(sb, jl, 1); in check_journal_end()
3839 struct reiserfs_journal_list *jl) in __commit_trans_jl() argument
3851 jl = journal->j_current_jl; in __commit_trans_jl()
3891 if (atomic_read(&jl->j_commit_left) > 1) in __commit_trans_jl()
3893 flush_commit_list(sb, jl, 1); in __commit_trans_jl()
3905 struct reiserfs_journal_list *jl = REISERFS_I(inode)->i_jl; in reiserfs_commit_for_inode() local
3911 if (!id || !jl) { in reiserfs_commit_for_inode()
3917 return __commit_trans_jl(inode, id, jl); in reiserfs_commit_for_inode()
3995 struct reiserfs_journal_list *jl, *temp_jl; in do_journal_end() local
4096 jl = journal->j_current_jl; in do_journal_end()
4104 reiserfs_mutex_lock_safe(&jl->j_commit_mutex, sb); in do_journal_end()
4107 commit_trans_id = jl->j_trans_id; in do_journal_end()
4109 atomic_set(&jl->j_older_commits_done, 0); in do_journal_end()
4110 jl->j_trans_id = journal->j_trans_id; in do_journal_end()
4111 jl->j_timestamp = journal->j_trans_start_time; in do_journal_end()
4112 jl->j_commit_bh = c_bh; in do_journal_end()
4113 jl->j_start = journal->j_start; in do_journal_end()
4114 jl->j_len = journal->j_len; in do_journal_end()
4115 atomic_set(&jl->j_nonzerolen, journal->j_len); in do_journal_end()
4116 atomic_set(&jl->j_commit_left, journal->j_len + 2); in do_journal_end()
4117 jl->j_realblock = NULL; in do_journal_end()
4133 jl->j_realblock = jl_cn; in do_journal_end()
4156 jl_cn->jlist = jl; in do_journal_end()
4243 list_add_tail(&jl->j_list, &journal->j_journal_list); in do_journal_end()
4244 list_add_tail(&jl->j_working_list, &journal->j_working_list); in do_journal_end()
4281 if (!list_empty(&jl->j_tail_bh_list)) { in do_journal_end()
4284 journal, jl, &jl->j_tail_bh_list); in do_journal_end()
4287 BUG_ON(!list_empty(&jl->j_tail_bh_list)); in do_journal_end()
4288 mutex_unlock(&jl->j_commit_mutex); 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()
4301 } else if (!(jl->j_state & LIST_COMMIT_PENDING)) { in do_journal_end()
4371 flush_commit_list(sb, jl, 1); in do_journal_end()