Lines Matching refs:bh
35 struct buffer_head *bh, *head; in gfs2_aspace_writepage() local
43 bh = head; in gfs2_aspace_writepage()
46 if (!buffer_mapped(bh)) in gfs2_aspace_writepage()
56 lock_buffer(bh); in gfs2_aspace_writepage()
57 } else if (!trylock_buffer(bh)) { in gfs2_aspace_writepage()
61 if (test_clear_buffer_dirty(bh)) { in gfs2_aspace_writepage()
62 mark_buffer_async_write(bh); in gfs2_aspace_writepage()
64 unlock_buffer(bh); in gfs2_aspace_writepage()
66 } while ((bh = bh->b_this_page) != head); in gfs2_aspace_writepage()
76 struct buffer_head *next = bh->b_this_page; in gfs2_aspace_writepage()
77 if (buffer_async_write(bh)) { in gfs2_aspace_writepage()
78 submit_bh(REQ_OP_WRITE | write_flags, bh); in gfs2_aspace_writepage()
81 bh = next; in gfs2_aspace_writepage()
82 } while (bh != head); in gfs2_aspace_writepage()
119 struct buffer_head *bh; in gfs2_getbuf() local
146 bh = NULL; in gfs2_getbuf()
152 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page) in gfs2_getbuf()
154 get_bh(bh); in gfs2_getbuf()
156 if (!buffer_mapped(bh)) in gfs2_getbuf()
157 map_bh(bh, sdp->sd_vfs, blkno); in gfs2_getbuf()
163 return bh; in gfs2_getbuf()
166 static void meta_prep_new(struct buffer_head *bh) in meta_prep_new() argument
168 struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data; in meta_prep_new()
170 lock_buffer(bh); in meta_prep_new()
171 clear_buffer_dirty(bh); in meta_prep_new()
172 set_buffer_uptodate(bh); in meta_prep_new()
173 unlock_buffer(bh); in meta_prep_new()
188 struct buffer_head *bh; in gfs2_meta_new() local
189 bh = gfs2_getbuf(gl, blkno, CREATE); in gfs2_meta_new()
190 meta_prep_new(bh); in gfs2_meta_new()
191 return bh; in gfs2_meta_new()
201 struct buffer_head *bh = page_buffers(page); in gfs2_meta_read_endio() local
204 while (bh_offset(bh) < bvec->bv_offset) in gfs2_meta_read_endio()
205 bh = bh->b_this_page; in gfs2_meta_read_endio()
207 struct buffer_head *next = bh->b_this_page; in gfs2_meta_read_endio()
208 len -= bh->b_size; in gfs2_meta_read_endio()
209 bh->b_end_io(bh, !bio->bi_status); in gfs2_meta_read_endio()
210 bh = next; in gfs2_meta_read_endio()
211 } while (bh && len); in gfs2_meta_read_endio()
223 struct buffer_head *bh = *bhs; in gfs2_submit_bhs() local
226 bio = bio_alloc(bh->b_bdev, num, opf, GFP_NOIO); in gfs2_submit_bhs()
227 bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9); in gfs2_submit_bhs()
229 bh = *bhs; in gfs2_submit_bhs()
230 if (!bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh))) { in gfs2_submit_bhs()
257 struct buffer_head *bh, *bhs[2]; in gfs2_meta_read() local
265 *bhp = bh = gfs2_getbuf(gl, blkno, CREATE); in gfs2_meta_read()
267 lock_buffer(bh); in gfs2_meta_read()
268 if (buffer_uptodate(bh)) { in gfs2_meta_read()
269 unlock_buffer(bh); in gfs2_meta_read()
272 bh->b_end_io = end_buffer_read_sync; in gfs2_meta_read()
273 get_bh(bh); in gfs2_meta_read()
274 bhs[num++] = bh; in gfs2_meta_read()
278 bh = gfs2_getbuf(gl, blkno + 1, CREATE); in gfs2_meta_read()
280 lock_buffer(bh); in gfs2_meta_read()
281 if (buffer_uptodate(bh)) { in gfs2_meta_read()
282 unlock_buffer(bh); in gfs2_meta_read()
283 brelse(bh); in gfs2_meta_read()
285 bh->b_end_io = end_buffer_read_sync; in gfs2_meta_read()
286 bhs[num++] = bh; in gfs2_meta_read()
294 bh = *bhp; in gfs2_meta_read()
295 wait_on_buffer(bh); in gfs2_meta_read()
296 if (unlikely(!buffer_uptodate(bh))) { in gfs2_meta_read()
299 gfs2_io_error_bh_wd(sdp, bh); in gfs2_meta_read()
300 brelse(bh); in gfs2_meta_read()
316 int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh) in gfs2_meta_wait() argument
321 wait_on_buffer(bh); in gfs2_meta_wait()
323 if (!buffer_uptodate(bh)) { in gfs2_meta_wait()
326 gfs2_io_error_bh_wd(sdp, bh); in gfs2_meta_wait()
335 void gfs2_remove_from_journal(struct buffer_head *bh, int meta) in gfs2_remove_from_journal() argument
337 struct address_space *mapping = bh->b_folio->mapping; in gfs2_remove_from_journal()
339 struct gfs2_bufdata *bd = bh->b_private; in gfs2_remove_from_journal()
343 if (test_clear_buffer_pinned(bh)) { in gfs2_remove_from_journal()
353 brelse(bh); in gfs2_remove_from_journal()
359 bh->b_private = NULL; in gfs2_remove_from_journal()
366 clear_buffer_dirty(bh); in gfs2_remove_from_journal()
367 clear_buffer_uptodate(bh); in gfs2_remove_from_journal()
385 struct buffer_head *bh; in gfs2_ail1_wipe() local
393 bh = bd->bd_bh; in gfs2_ail1_wipe()
394 if (bh->b_blocknr < bstart || bh->b_blocknr >= end) in gfs2_ail1_wipe()
397 gfs2_remove_from_journal(bh, REMOVE_JDATA); in gfs2_ail1_wipe()
409 struct buffer_head *bh; in gfs2_getjdatabuf() local
423 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page) in gfs2_getjdatabuf()
425 get_bh(bh); in gfs2_getjdatabuf()
428 return bh; in gfs2_getjdatabuf()
442 struct buffer_head *bh; in gfs2_journal_wipe() local
454 bh = gfs2_getbuf(ip->i_gl, bstart, NO_CREATE); in gfs2_journal_wipe()
455 if (!bh && gfs2_is_jdata(ip)) { in gfs2_journal_wipe()
456 bh = gfs2_getjdatabuf(ip, bstart); in gfs2_journal_wipe()
459 if (bh) { in gfs2_journal_wipe()
460 lock_buffer(bh); in gfs2_journal_wipe()
463 gfs2_remove_from_journal(bh, ty); in gfs2_journal_wipe()
466 unlock_buffer(bh); in gfs2_journal_wipe()
467 brelse(bh); in gfs2_journal_wipe()
490 struct buffer_head *bh; in gfs2_meta_buffer() local
497 ret = gfs2_meta_read(gl, num, DIO_WAIT, rahead, &bh); in gfs2_meta_buffer()
498 if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) { in gfs2_meta_buffer()
499 brelse(bh); in gfs2_meta_buffer()
502 *bhp = bh; in gfs2_meta_buffer()
519 struct buffer_head *first_bh, *bh; in gfs2_meta_ra() local
540 bh = gfs2_getbuf(gl, dblock, CREATE); in gfs2_meta_ra()
542 bh_readahead(bh, REQ_RAHEAD | REQ_META | REQ_PRIO); in gfs2_meta_ra()
543 brelse(bh); in gfs2_meta_ra()