Lines Matching refs:bh
54 static void buffer_io_error(struct buffer_head *bh) in buffer_io_error() argument
58 bdevname(bh->b_bdev, b), in buffer_io_error()
59 (unsigned long long)bh->b_blocknr); in buffer_io_error()
73 struct buffer_head *bh, *head; in ext4_finish_bio() local
95 bh = head = page_buffers(page); in ext4_finish_bio()
103 if (bh_offset(bh) < bio_start || in ext4_finish_bio()
104 bh_offset(bh) + bh->b_size > bio_end) { in ext4_finish_bio()
105 if (buffer_async_write(bh)) in ext4_finish_bio()
109 clear_buffer_async_write(bh); in ext4_finish_bio()
111 buffer_io_error(bh); in ext4_finish_bio()
112 } while ((bh = bh->b_this_page) != head); in ext4_finish_bio()
376 struct buffer_head *bh) in io_submit_init_bio() argument
384 bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9); in io_submit_init_bio()
385 bio->bi_bdev = bh->b_bdev; in io_submit_init_bio()
389 io->io_next_block = bh->b_blocknr; in io_submit_init_bio()
396 struct buffer_head *bh) in io_submit_add_bh() argument
400 if (io->io_bio && bh->b_blocknr != io->io_next_block) { in io_submit_add_bh()
405 ret = io_submit_init_bio(io, bh); in io_submit_add_bh()
409 ret = bio_add_page(io->io_bio, page, bh->b_size, bh_offset(bh)); in io_submit_add_bh()
410 if (ret != bh->b_size) in io_submit_add_bh()
412 wbc_account_io(io->io_wbc, page, bh->b_size); in io_submit_add_bh()
426 struct buffer_head *bh, *head; in ext4_bio_write_page() local
460 bh = head = page_buffers(page); in ext4_bio_write_page()
462 block_start = bh_offset(bh); in ext4_bio_write_page()
464 clear_buffer_dirty(bh); in ext4_bio_write_page()
465 set_buffer_uptodate(bh); in ext4_bio_write_page()
468 if (!buffer_dirty(bh) || buffer_delay(bh) || in ext4_bio_write_page()
469 !buffer_mapped(bh) || buffer_unwritten(bh)) { in ext4_bio_write_page()
471 if (!buffer_mapped(bh)) in ext4_bio_write_page()
472 clear_buffer_dirty(bh); in ext4_bio_write_page()
477 if (buffer_new(bh)) { in ext4_bio_write_page()
478 clear_buffer_new(bh); in ext4_bio_write_page()
479 unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); in ext4_bio_write_page()
481 set_buffer_async_write(bh); in ext4_bio_write_page()
483 } while ((bh = bh->b_this_page) != head); in ext4_bio_write_page()
485 bh = head = page_buffers(page); in ext4_bio_write_page()
510 if (!buffer_async_write(bh)) in ext4_bio_write_page()
513 data_page ? data_page : page, bh); in ext4_bio_write_page()
523 clear_buffer_dirty(bh); in ext4_bio_write_page()
524 } while ((bh = bh->b_this_page) != head); in ext4_bio_write_page()
534 clear_buffer_async_write(bh); in ext4_bio_write_page()
535 bh = bh->b_this_page; in ext4_bio_write_page()
536 } while (bh != head); in ext4_bio_write_page()