Lines Matching refs:jh
2779 static void journal_free_journal_head(struct journal_head *jh)
2783 memset(jh, JBD2_POISON_FREE, sizeof(*jh));
2785 kmem_cache_free(jbd2_journal_head_cache, jh);
2815 * struct journal_head *jh = jbd2_journal_add_journal_head(bh);
2819 * jh->b_transaction = xxx;
2821 * jbd2_journal_put_journal_head(jh);
2831 struct journal_head *jh;
2840 jh = bh2jh(bh);
2851 jh = new_jh;
2854 bh->b_private = jh;
2855 jh->b_bh = bh;
2859 jh->b_jcount++;
2872 struct journal_head *jh = NULL;
2876 jh = bh2jh(bh);
2877 jh->b_jcount++;
2880 return jh;
2886 struct journal_head *jh = bh2jh(bh);
2888 J_ASSERT_JH(jh, jh->b_transaction == NULL);
2889 J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
2890 J_ASSERT_JH(jh, jh->b_cp_transaction == NULL);
2891 J_ASSERT_JH(jh, jh->b_jlist == BJ_None);
2893 J_ASSERT_BH(bh, jh2bh(jh) == bh);
2898 jh->b_bh = NULL; /* debug, really */
2902 static void journal_release_journal_head(struct journal_head *jh, size_t b_size)
2904 if (jh->b_frozen_data) {
2906 jbd2_free(jh->b_frozen_data, b_size);
2908 if (jh->b_committed_data) {
2910 jbd2_free(jh->b_committed_data, b_size);
2912 journal_free_journal_head(jh);
2919 void jbd2_journal_put_journal_head(struct journal_head *jh)
2921 struct buffer_head *bh = jh2bh(jh);
2924 J_ASSERT_JH(jh, jh->b_jcount > 0);
2925 --jh->b_jcount;
2926 if (!jh->b_jcount) {
2929 journal_release_journal_head(jh, bh->b_size);