Lines Matching refs:bh

35 	struct buffer_head *bh, *head;
43 bh = head;
46 if (!buffer_mapped(bh))
56 lock_buffer(bh);
57 } else if (!trylock_buffer(bh)) {
61 if (test_clear_buffer_dirty(bh)) {
62 mark_buffer_async_write(bh);
64 unlock_buffer(bh);
66 } while ((bh = bh->b_this_page) != head);
70 * drop the bh refcounts early.
76 struct buffer_head *next = bh->b_this_page;
77 if (buffer_async_write(bh)) {
78 submit_bh(REQ_OP_WRITE, write_flags, bh);
81 bh = next;
82 } while (bh != head);
115 struct buffer_head *bh;
145 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page)
147 get_bh(bh);
149 if (!buffer_mapped(bh))
150 map_bh(bh, sdp->sd_vfs, blkno);
155 return bh;
158 static void meta_prep_new(struct buffer_head *bh)
160 struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data;
162 lock_buffer(bh);
163 clear_buffer_dirty(bh);
164 set_buffer_uptodate(bh);
165 unlock_buffer(bh);
180 struct buffer_head *bh;
181 bh = gfs2_getbuf(gl, blkno, CREATE);
182 meta_prep_new(bh);
183 return bh;
193 struct buffer_head *bh = page_buffers(page);
196 while (bh_offset(bh) < bvec->bv_offset)
197 bh = bh->b_this_page;
199 struct buffer_head *next = bh->b_this_page;
200 len -= bh->b_size;
201 bh->b_end_io(bh, !bio->bi_status);
202 bh = next;
203 } while (bh && len);
216 struct buffer_head *bh = *bhs;
220 bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9);
221 bio_set_dev(bio, bh->b_bdev);
223 bh = *bhs;
224 if (!bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh))) {
251 struct buffer_head *bh, *bhs[2];
260 *bhp = bh = gfs2_getbuf(gl, blkno, CREATE);
262 lock_buffer(bh);
263 if (buffer_uptodate(bh)) {
264 unlock_buffer(bh);
267 bh->b_end_io = end_buffer_read_sync;
268 get_bh(bh);
269 bhs[num++] = bh;
273 bh = gfs2_getbuf(gl, blkno + 1, CREATE);
275 lock_buffer(bh);
276 if (buffer_uptodate(bh)) {
277 unlock_buffer(bh);
278 brelse(bh);
280 bh->b_end_io = end_buffer_read_sync;
281 bhs[num++] = bh;
289 bh = *bhp;
290 wait_on_buffer(bh);
291 if (unlikely(!buffer_uptodate(bh))) {
294 gfs2_io_error_bh_wd(sdp, bh);
295 brelse(bh);
306 * @bh: The block to wait for
311 int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh)
316 wait_on_buffer(bh);
318 if (!buffer_uptodate(bh)) {
321 gfs2_io_error_bh_wd(sdp, bh);
330 void gfs2_remove_from_journal(struct buffer_head *bh, int meta)
332 struct address_space *mapping = bh->b_page->mapping;
334 struct gfs2_bufdata *bd = bh->b_private;
338 if (test_clear_buffer_pinned(bh)) {
348 brelse(bh);
354 bh->b_private = NULL;
361 clear_buffer_dirty(bh);
362 clear_buffer_uptodate(bh);
380 struct buffer_head *bh;
388 bh = bd->bd_bh;
389 if (bh->b_blocknr < bstart || bh->b_blocknr >= end)
392 gfs2_remove_from_journal(bh, REMOVE_JDATA);
404 struct buffer_head *bh;
418 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page)
420 get_bh(bh);
423 return bh;
437 struct buffer_head *bh;
443 bh = gfs2_getbuf(ip->i_gl, bstart, NO_CREATE);
444 if (!bh && gfs2_is_jdata(ip)) {
445 bh = gfs2_getjdatabuf(ip, bstart);
448 if (bh) {
449 lock_buffer(bh);
452 gfs2_remove_from_journal(bh, ty);
455 unlock_buffer(bh);
456 brelse(bh);
479 struct buffer_head *bh;
487 ret = gfs2_meta_read(gl, num, DIO_WAIT, rahead, &bh);
488 if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) {
489 brelse(bh);
492 *bhp = bh;
509 struct buffer_head *first_bh, *bh;
531 bh = gfs2_getbuf(gl, dblock, CREATE);
533 if (!buffer_uptodate(bh) && !buffer_locked(bh))
536 1, &bh);
537 brelse(bh);