• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/fs/gfs2/

Lines Matching refs:bh

37 	struct buffer_head *bh, *head;
46 bh = head;
49 if (!buffer_mapped(bh))
59 lock_buffer(bh);
60 } else if (!trylock_buffer(bh)) {
64 if (test_clear_buffer_dirty(bh)) {
65 mark_buffer_async_write(bh);
67 unlock_buffer(bh);
69 } while ((bh = bh->b_this_page) != head);
73 * drop the bh refcounts early.
79 struct buffer_head *next = bh->b_this_page;
80 if (buffer_async_write(bh)) {
81 submit_bh(write_op, bh);
84 bh = next;
85 } while (bh != head);
132 struct buffer_head *bh;
158 for (bh = page_buffers(page); bufnum--; bh = bh->b_this_page)
160 get_bh(bh);
162 if (!buffer_mapped(bh))
163 map_bh(bh, sdp->sd_vfs, blkno);
169 return bh;
172 static void meta_prep_new(struct buffer_head *bh)
174 struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data;
176 lock_buffer(bh);
177 clear_buffer_dirty(bh);
178 set_buffer_uptodate(bh);
179 unlock_buffer(bh);
194 struct buffer_head *bh;
195 bh = gfs2_getbuf(gl, blkno, CREATE);
196 meta_prep_new(bh);
197 return bh;
214 struct buffer_head *bh;
219 *bhp = bh = gfs2_getbuf(gl, blkno, CREATE);
221 lock_buffer(bh);
222 if (buffer_uptodate(bh)) {
223 unlock_buffer(bh);
226 bh->b_end_io = end_buffer_read_sync;
227 get_bh(bh);
228 submit_bh(READ_SYNC | REQ_META, bh);
232 wait_on_buffer(bh);
233 if (unlikely(!buffer_uptodate(bh))) {
236 gfs2_io_error_bh(sdp, bh);
237 brelse(bh);
247 * @bh: The block to wait for
252 int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh)
257 wait_on_buffer(bh);
259 if (!buffer_uptodate(bh)) {
262 gfs2_io_error_bh(sdp, bh);
274 * @bh: The buffer to be attached to
278 void gfs2_attach_bufdata(struct gfs2_glock *gl, struct buffer_head *bh,
284 lock_page(bh->b_page);
286 if (bh->b_private) {
288 unlock_page(bh->b_page);
293 bd->bd_bh = bh;
301 bh->b_private = bd;
304 unlock_page(bh->b_page);
307 void gfs2_remove_from_journal(struct buffer_head *bh, struct gfs2_trans *tr, int meta)
309 struct address_space *mapping = bh->b_page->mapping;
311 struct gfs2_bufdata *bd = bh->b_private;
313 if (test_clear_buffer_pinned(bh)) {
326 brelse(bh);
331 bh->b_private = NULL;
333 bd->bd_blkno = bh->b_blocknr;
337 clear_buffer_dirty(bh);
338 clear_buffer_uptodate(bh);
352 struct buffer_head *bh;
355 bh = gfs2_getbuf(ip->i_gl, bstart, NO_CREATE);
356 if (bh) {
357 lock_buffer(bh);
359 gfs2_remove_from_journal(bh, current->journal_info, 1);
361 unlock_buffer(bh);
362 brelse(bh);
386 struct buffer_head *bh;
391 bh = gfs2_meta_new(gl, num);
392 gfs2_trans_add_bh(ip->i_gl, bh, 1);
393 gfs2_metatype_set(bh, GFS2_METATYPE_IN, GFS2_FORMAT_IN);
394 gfs2_buffer_clear_tail(bh, sizeof(struct gfs2_meta_header));
397 ret = gfs2_meta_read(gl, num, DIO_WAIT, &bh);
398 if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) {
399 brelse(bh);
403 *bhp = bh;
419 struct buffer_head *first_bh, *bh;
441 bh = gfs2_getbuf(gl, dblock, CREATE);
443 if (!buffer_uptodate(bh) && !buffer_locked(bh))
444 ll_rw_block(READA, 1, &bh);
445 brelse(bh);