Lines Matching refs:bh

53 static void buffer_io_error(struct buffer_head *bh)  in buffer_io_error()  argument
57 bdevname(bh->b_bdev, b), in buffer_io_error()
58 (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()
377 struct buffer_head *bh) in io_submit_init_bio() argument
379 int nvecs = bio_get_nr_vecs(bh->b_bdev); in io_submit_init_bio()
385 bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9); in io_submit_init_bio()
386 bio->bi_bdev = bh->b_bdev; in io_submit_init_bio()
390 io->io_next_block = bh->b_blocknr; in io_submit_init_bio()
397 struct buffer_head *bh) in io_submit_add_bh() argument
401 if (io->io_bio && bh->b_blocknr != io->io_next_block) { in io_submit_add_bh()
406 ret = io_submit_init_bio(io, bh); in io_submit_add_bh()
410 ret = bio_add_page(io->io_bio, page, bh->b_size, bh_offset(bh)); in io_submit_add_bh()
411 if (ret != 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()
499 if (!buffer_async_write(bh)) in ext4_bio_write_page()
502 data_page ? data_page : page, bh); in ext4_bio_write_page()
512 clear_buffer_dirty(bh); in ext4_bio_write_page()
513 } while ((bh = bh->b_this_page) != head); in ext4_bio_write_page()
523 clear_buffer_async_write(bh); in ext4_bio_write_page()
524 bh = bh->b_this_page; in ext4_bio_write_page()
525 } while (bh != head); in ext4_bio_write_page()