Lines Matching refs:bh
54 static void buffer_io_error(struct buffer_head *bh) in buffer_io_error() argument
57 bh->b_bdev, in buffer_io_error()
58 (unsigned long long)bh->b_blocknr); in buffer_io_error()
71 struct buffer_head *bh, *head; in ext4_finish_bio() local
92 bh = head = page_buffers(page); in ext4_finish_bio()
100 if (bh_offset(bh) < bio_start || in ext4_finish_bio()
101 bh_offset(bh) + bh->b_size > bio_end) { in ext4_finish_bio()
102 if (buffer_async_write(bh)) in ext4_finish_bio()
106 clear_buffer_async_write(bh); in ext4_finish_bio()
108 buffer_io_error(bh); in ext4_finish_bio()
109 } while ((bh = bh->b_this_page) != head); in ext4_finish_bio()
358 struct buffer_head *bh) in io_submit_init_bio() argument
366 bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9); in io_submit_init_bio()
367 bio->bi_bdev = bh->b_bdev; in io_submit_init_bio()
371 io->io_next_block = bh->b_blocknr; in io_submit_init_bio()
378 struct buffer_head *bh) in io_submit_add_bh() argument
382 if (io->io_bio && bh->b_blocknr != io->io_next_block) { in io_submit_add_bh()
387 ret = io_submit_init_bio(io, bh); in io_submit_add_bh()
391 ret = bio_add_page(io->io_bio, page, bh->b_size, bh_offset(bh)); in io_submit_add_bh()
392 if (ret != bh->b_size) in io_submit_add_bh()
394 wbc_account_io(io->io_wbc, page, bh->b_size); in io_submit_add_bh()
408 struct buffer_head *bh, *head; in ext4_bio_write_page() local
440 bh = head = page_buffers(page); in ext4_bio_write_page()
442 block_start = bh_offset(bh); in ext4_bio_write_page()
444 clear_buffer_dirty(bh); in ext4_bio_write_page()
445 set_buffer_uptodate(bh); in ext4_bio_write_page()
448 if (!buffer_dirty(bh) || buffer_delay(bh) || in ext4_bio_write_page()
449 !buffer_mapped(bh) || buffer_unwritten(bh)) { in ext4_bio_write_page()
451 if (!buffer_mapped(bh)) in ext4_bio_write_page()
452 clear_buffer_dirty(bh); in ext4_bio_write_page()
457 if (buffer_new(bh)) { in ext4_bio_write_page()
458 clear_buffer_new(bh); in ext4_bio_write_page()
459 unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); in ext4_bio_write_page()
461 set_buffer_async_write(bh); in ext4_bio_write_page()
463 } while ((bh = bh->b_this_page) != head); in ext4_bio_write_page()
465 bh = head = page_buffers(page); in ext4_bio_write_page()
491 if (!buffer_async_write(bh)) in ext4_bio_write_page()
494 data_page ? data_page : page, bh); in ext4_bio_write_page()
504 clear_buffer_dirty(bh); in ext4_bio_write_page()
505 } while ((bh = bh->b_this_page) != head); in ext4_bio_write_page()
515 clear_buffer_async_write(bh); in ext4_bio_write_page()
516 bh = bh->b_this_page; in ext4_bio_write_page()
517 } while (bh != head); in ext4_bio_write_page()