Lines Matching refs:bh
32 static void journal_end_buffer_io_sync(struct buffer_head *bh, int uptodate) in journal_end_buffer_io_sync() argument
34 struct buffer_head *orig_bh = bh->b_private; in journal_end_buffer_io_sync()
36 BUFFER_TRACE(bh, ""); in journal_end_buffer_io_sync()
38 set_buffer_uptodate(bh); in journal_end_buffer_io_sync()
40 clear_buffer_uptodate(bh); in journal_end_buffer_io_sync()
46 unlock_buffer(bh); in journal_end_buffer_io_sync()
63 static void release_buffer_page(struct buffer_head *bh) in release_buffer_page() argument
67 if (buffer_dirty(bh)) in release_buffer_page()
69 if (atomic_read(&bh->b_count) != 1) in release_buffer_page()
71 folio = bh->b_folio; in release_buffer_page()
80 __brelse(bh); in release_buffer_page()
87 __brelse(bh); in release_buffer_page()
90 static void jbd2_commit_block_csum_set(journal_t *j, struct buffer_head *bh) in jbd2_commit_block_csum_set() argument
98 h = (struct commit_header *)(bh->b_data); in jbd2_commit_block_csum_set()
102 csum = jbd2_chksum(j, j->j_csum_seed, bh->b_data, j->j_blocksize); in jbd2_commit_block_csum_set()
120 struct buffer_head *bh; in journal_submit_commit_record() local
129 bh = jbd2_journal_get_descriptor_buffer(commit_transaction, in journal_submit_commit_record()
131 if (!bh) in journal_submit_commit_record()
134 tmp = (struct commit_header *)bh->b_data; in journal_submit_commit_record()
144 jbd2_commit_block_csum_set(journal, bh); in journal_submit_commit_record()
146 BUFFER_TRACE(bh, "submit commit block"); in journal_submit_commit_record()
147 lock_buffer(bh); in journal_submit_commit_record()
148 clear_buffer_dirty(bh); in journal_submit_commit_record()
149 set_buffer_uptodate(bh); in journal_submit_commit_record()
150 bh->b_end_io = journal_end_buffer_io_sync; in journal_submit_commit_record()
156 submit_bh(write_flags, bh); in journal_submit_commit_record()
157 *cbh = bh; in journal_submit_commit_record()
166 struct buffer_head *bh) in journal_wait_on_commit_record() argument
170 clear_buffer_dirty(bh); in journal_wait_on_commit_record()
171 wait_on_buffer(bh); in journal_wait_on_commit_record()
173 if (unlikely(!buffer_uptodate(bh))) in journal_wait_on_commit_record()
175 put_bh(bh); /* One for getblk() */ in journal_wait_on_commit_record()
299 static __u32 jbd2_checksum_data(__u32 crc32_sum, struct buffer_head *bh) in jbd2_checksum_data() argument
304 addr = kmap_local_folio(bh->b_folio, bh_offset(bh)); in jbd2_checksum_data()
305 checksum = crc32_be(crc32_sum, addr, bh->b_size); in jbd2_checksum_data()
320 struct buffer_head *bh, __u32 sequence) in jbd2_block_tag_csum_set() argument
331 addr = kmap_local_folio(bh->b_folio, bh_offset(bh)); in jbd2_block_tag_csum_set()
333 csum32 = jbd2_chksum(j, csum32, addr, bh->b_size); in jbd2_block_tag_csum_set()
487 struct buffer_head *bh = jh2bh(jh); in jbd2_journal_commit_transaction() local
490 jbd2_free(jh->b_committed_data, bh->b_size); in jbd2_journal_commit_transaction()
717 struct buffer_head *bh = wbuf[i]; in jbd2_journal_commit_transaction() local
723 jbd2_checksum_data(crc32_sum, bh); in jbd2_journal_commit_transaction()
726 lock_buffer(bh); in jbd2_journal_commit_transaction()
727 clear_buffer_dirty(bh); in jbd2_journal_commit_transaction()
728 set_buffer_uptodate(bh); in jbd2_journal_commit_transaction()
729 bh->b_end_io = journal_end_buffer_io_sync; in jbd2_journal_commit_transaction()
730 submit_bh(REQ_OP_WRITE | REQ_SYNC, bh); in jbd2_journal_commit_transaction()
809 struct buffer_head *bh = list_entry(io_bufs.prev, in jbd2_journal_commit_transaction() local
813 wait_on_buffer(bh); in jbd2_journal_commit_transaction()
816 if (unlikely(!buffer_uptodate(bh))) in jbd2_journal_commit_transaction()
818 jbd2_unfile_log_bh(bh); in jbd2_journal_commit_transaction()
825 BUFFER_TRACE(bh, "dumping temporary bh"); in jbd2_journal_commit_transaction()
826 __brelse(bh); in jbd2_journal_commit_transaction()
827 J_ASSERT_BH(bh, atomic_read(&bh->b_count) == 0); in jbd2_journal_commit_transaction()
828 free_buffer_head(bh); in jbd2_journal_commit_transaction()
832 bh = jh2bh(jh); in jbd2_journal_commit_transaction()
833 clear_buffer_jwrite(bh); in jbd2_journal_commit_transaction()
834 J_ASSERT_BH(bh, buffer_jbddirty(bh)); in jbd2_journal_commit_transaction()
835 J_ASSERT_BH(bh, !buffer_shadow(bh)); in jbd2_journal_commit_transaction()
844 __brelse(bh); in jbd2_journal_commit_transaction()
853 struct buffer_head *bh; in jbd2_journal_commit_transaction() local
855 bh = list_entry(log_bufs.prev, struct buffer_head, b_assoc_buffers); in jbd2_journal_commit_transaction()
856 wait_on_buffer(bh); in jbd2_journal_commit_transaction()
859 if (unlikely(!buffer_uptodate(bh))) in jbd2_journal_commit_transaction()
862 BUFFER_TRACE(bh, "ph5: control buffer writeout done: unfile"); in jbd2_journal_commit_transaction()
863 clear_buffer_jwrite(bh); in jbd2_journal_commit_transaction()
864 jbd2_unfile_log_bh(bh); in jbd2_journal_commit_transaction()
866 __brelse(bh); /* One for getblk */ in jbd2_journal_commit_transaction()
927 struct buffer_head *bh; in jbd2_journal_commit_transaction() local
933 bh = jh2bh(jh); in jbd2_journal_commit_transaction()
938 get_bh(bh); in jbd2_journal_commit_transaction()
956 jbd2_free(jh->b_committed_data, bh->b_size); in jbd2_journal_commit_transaction()
964 jbd2_free(jh->b_frozen_data, bh->b_size); in jbd2_journal_commit_transaction()
992 if (buffer_freed(bh) && !jh->b_next_transaction) { in jbd2_journal_commit_transaction()
995 clear_buffer_freed(bh); in jbd2_journal_commit_transaction()
996 clear_buffer_jbddirty(bh); in jbd2_journal_commit_transaction()
1010 mapping = READ_ONCE(bh->b_folio->mapping); in jbd2_journal_commit_transaction()
1012 clear_buffer_mapped(bh); in jbd2_journal_commit_transaction()
1013 clear_buffer_new(bh); in jbd2_journal_commit_transaction()
1014 clear_buffer_req(bh); in jbd2_journal_commit_transaction()
1015 bh->b_bdev = NULL; in jbd2_journal_commit_transaction()
1019 if (buffer_jbddirty(bh)) { in jbd2_journal_commit_transaction()
1023 clear_buffer_jbddirty(bh); in jbd2_journal_commit_transaction()
1025 J_ASSERT_BH(bh, !buffer_dirty(bh)); in jbd2_journal_commit_transaction()
1044 release_buffer_page(bh); /* Drops bh reference */ in jbd2_journal_commit_transaction()
1046 __brelse(bh); in jbd2_journal_commit_transaction()