Lines Matching refs:bh
38 struct buffer_head *bh, *head; in gfs2_aspace_writepage() local
47 bh = head; in gfs2_aspace_writepage()
50 if (!buffer_mapped(bh)) in gfs2_aspace_writepage()
60 lock_buffer(bh); in gfs2_aspace_writepage()
61 } else if (!trylock_buffer(bh)) { in gfs2_aspace_writepage()
65 if (test_clear_buffer_dirty(bh)) { in gfs2_aspace_writepage()
66 mark_buffer_async_write(bh); in gfs2_aspace_writepage()
68 unlock_buffer(bh); in gfs2_aspace_writepage()
70 } while ((bh = bh->b_this_page) != head); in gfs2_aspace_writepage()
80 struct buffer_head *next = bh->b_this_page; in gfs2_aspace_writepage()
81 if (buffer_async_write(bh)) { in gfs2_aspace_writepage()
82 submit_bh(write_op, bh); in gfs2_aspace_writepage()
85 bh = next; in gfs2_aspace_writepage()
86 } while (bh != head); in gfs2_aspace_writepage()
119 struct buffer_head *bh; in gfs2_getbuf() local
149 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page) in gfs2_getbuf()
151 get_bh(bh); in gfs2_getbuf()
153 if (!buffer_mapped(bh)) in gfs2_getbuf()
154 map_bh(bh, sdp->sd_vfs, blkno); in gfs2_getbuf()
159 return bh; in gfs2_getbuf()
162 static void meta_prep_new(struct buffer_head *bh) in meta_prep_new() argument
164 struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data; in meta_prep_new()
166 lock_buffer(bh); in meta_prep_new()
167 clear_buffer_dirty(bh); in meta_prep_new()
168 set_buffer_uptodate(bh); in meta_prep_new()
169 unlock_buffer(bh); in meta_prep_new()
184 struct buffer_head *bh; in gfs2_meta_new() local
185 bh = gfs2_getbuf(gl, blkno, CREATE); in gfs2_meta_new()
186 meta_prep_new(bh); in gfs2_meta_new()
187 return bh; in gfs2_meta_new()
204 struct buffer_head *bh; in gfs2_meta_read() local
211 *bhp = bh = gfs2_getbuf(gl, blkno, CREATE); in gfs2_meta_read()
213 lock_buffer(bh); in gfs2_meta_read()
214 if (buffer_uptodate(bh)) { in gfs2_meta_read()
215 unlock_buffer(bh); in gfs2_meta_read()
218 bh->b_end_io = end_buffer_read_sync; in gfs2_meta_read()
219 get_bh(bh); in gfs2_meta_read()
220 submit_bh(READ_SYNC | REQ_META | REQ_PRIO, bh); in gfs2_meta_read()
224 wait_on_buffer(bh); in gfs2_meta_read()
225 if (unlikely(!buffer_uptodate(bh))) { in gfs2_meta_read()
228 gfs2_io_error_bh(sdp, bh); in gfs2_meta_read()
229 brelse(bh); in gfs2_meta_read()
245 int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh) in gfs2_meta_wait() argument
250 wait_on_buffer(bh); in gfs2_meta_wait()
252 if (!buffer_uptodate(bh)) { in gfs2_meta_wait()
255 gfs2_io_error_bh(sdp, bh); in gfs2_meta_wait()
264 void gfs2_remove_from_journal(struct buffer_head *bh, struct gfs2_trans *tr, int meta) in gfs2_remove_from_journal() argument
266 struct address_space *mapping = bh->b_page->mapping; in gfs2_remove_from_journal()
268 struct gfs2_bufdata *bd = bh->b_private; in gfs2_remove_from_journal()
271 if (test_clear_buffer_pinned(bh)) { in gfs2_remove_from_journal()
281 brelse(bh); in gfs2_remove_from_journal()
288 bh->b_private = NULL; in gfs2_remove_from_journal()
293 clear_buffer_dirty(bh); in gfs2_remove_from_journal()
294 clear_buffer_uptodate(bh); in gfs2_remove_from_journal()
308 struct buffer_head *bh; in gfs2_meta_wipe() local
311 bh = gfs2_getbuf(ip->i_gl, bstart, NO_CREATE); in gfs2_meta_wipe()
312 if (bh) { in gfs2_meta_wipe()
313 lock_buffer(bh); in gfs2_meta_wipe()
315 gfs2_remove_from_journal(bh, current->journal_info, 1); in gfs2_meta_wipe()
317 unlock_buffer(bh); in gfs2_meta_wipe()
318 brelse(bh); in gfs2_meta_wipe()
341 struct buffer_head *bh; in gfs2_meta_indirect_buffer() local
345 ret = gfs2_meta_read(gl, num, DIO_WAIT, &bh); in gfs2_meta_indirect_buffer()
346 if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) { in gfs2_meta_indirect_buffer()
347 brelse(bh); in gfs2_meta_indirect_buffer()
350 *bhp = bh; in gfs2_meta_indirect_buffer()
366 struct buffer_head *first_bh, *bh; in gfs2_meta_ra() local
388 bh = gfs2_getbuf(gl, dblock, CREATE); in gfs2_meta_ra()
390 if (!buffer_uptodate(bh) && !buffer_locked(bh)) in gfs2_meta_ra()
391 ll_rw_block(READA | REQ_META, 1, &bh); in gfs2_meta_ra()
392 brelse(bh); in gfs2_meta_ra()