Lines Matching refs:bh
53 int ocfs2_write_block(struct ocfs2_super *osb, struct buffer_head *bh, in ocfs2_write_block() argument
58 trace_ocfs2_write_block((unsigned long long)bh->b_blocknr, ci); in ocfs2_write_block()
60 BUG_ON(bh->b_blocknr < OCFS2_SUPER_BLOCK_BLKNO); in ocfs2_write_block()
61 BUG_ON(buffer_jbd(bh)); in ocfs2_write_block()
74 lock_buffer(bh); in ocfs2_write_block()
75 set_buffer_uptodate(bh); in ocfs2_write_block()
78 clear_buffer_dirty(bh); in ocfs2_write_block()
80 get_bh(bh); /* for end_buffer_write_sync() */ in ocfs2_write_block()
81 bh->b_end_io = end_buffer_write_sync; in ocfs2_write_block()
82 submit_bh(WRITE, bh); in ocfs2_write_block()
84 wait_on_buffer(bh); in ocfs2_write_block()
86 if (buffer_uptodate(bh)) { in ocfs2_write_block()
87 ocfs2_set_buffer_uptodate(ci, bh); in ocfs2_write_block()
109 struct buffer_head *bh; in ocfs2_read_blocks_sync() local
131 bh = bhs[i]; in ocfs2_read_blocks_sync()
133 if (buffer_jbd(bh)) { in ocfs2_read_blocks_sync()
135 (unsigned long long)bh->b_blocknr); in ocfs2_read_blocks_sync()
139 if (buffer_dirty(bh)) { in ocfs2_read_blocks_sync()
145 (unsigned long long)bh->b_blocknr); in ocfs2_read_blocks_sync()
149 lock_buffer(bh); in ocfs2_read_blocks_sync()
150 if (buffer_jbd(bh)) { in ocfs2_read_blocks_sync()
154 (unsigned long long)bh->b_blocknr); in ocfs2_read_blocks_sync()
158 get_bh(bh); /* for end_buffer_read_sync() */ in ocfs2_read_blocks_sync()
159 bh->b_end_io = end_buffer_read_sync; in ocfs2_read_blocks_sync()
160 submit_bh(READ, bh); in ocfs2_read_blocks_sync()
165 bh = bhs[i - 1]; in ocfs2_read_blocks_sync()
168 if (new_bh && bh) { in ocfs2_read_blocks_sync()
173 if (!buffer_jbd(bh)) in ocfs2_read_blocks_sync()
174 wait_on_buffer(bh); in ocfs2_read_blocks_sync()
175 put_bh(bh); in ocfs2_read_blocks_sync()
177 } else if (bh && buffer_uptodate(bh)) { in ocfs2_read_blocks_sync()
178 clear_buffer_uptodate(bh); in ocfs2_read_blocks_sync()
184 if (!buffer_jbd(bh)) in ocfs2_read_blocks_sync()
185 wait_on_buffer(bh); in ocfs2_read_blocks_sync()
187 if (!buffer_uptodate(bh)) { in ocfs2_read_blocks_sync()
206 struct buffer_head *bh)) in ocfs2_read_blocks() argument
210 struct buffer_head *bh; in ocfs2_read_blocks() local
255 bh = bhs[i]; in ocfs2_read_blocks()
282 if (!ignore_cache && !ocfs2_buffer_uptodate(ci, bh)) { in ocfs2_read_blocks()
284 (unsigned long long)bh->b_blocknr, in ocfs2_read_blocks()
291 trace_ocfs2_read_blocks_bh((unsigned long long)bh->b_blocknr, in ocfs2_read_blocks()
292 ignore_cache, buffer_jbd(bh), buffer_dirty(bh)); in ocfs2_read_blocks()
294 if (buffer_jbd(bh)) { in ocfs2_read_blocks()
299 if (buffer_dirty(bh)) { in ocfs2_read_blocks()
310 && ocfs2_buffer_read_ahead(ci, bh)) in ocfs2_read_blocks()
313 lock_buffer(bh); in ocfs2_read_blocks()
314 if (buffer_jbd(bh)) { in ocfs2_read_blocks()
318 (unsigned long long)bh->b_blocknr); in ocfs2_read_blocks()
321 unlock_buffer(bh); in ocfs2_read_blocks()
332 && ocfs2_buffer_uptodate(ci, bh)) { in ocfs2_read_blocks()
333 unlock_buffer(bh); in ocfs2_read_blocks()
337 get_bh(bh); /* for end_buffer_read_sync() */ in ocfs2_read_blocks()
339 set_buffer_needs_validate(bh); in ocfs2_read_blocks()
340 bh->b_end_io = end_buffer_read_sync; in ocfs2_read_blocks()
341 submit_bh(READ, bh); in ocfs2_read_blocks()
348 bh = bhs[i]; in ocfs2_read_blocks()
355 if (new_bh && bh) { in ocfs2_read_blocks()
360 if (!buffer_jbd(bh)) in ocfs2_read_blocks()
361 wait_on_buffer(bh); in ocfs2_read_blocks()
362 put_bh(bh); in ocfs2_read_blocks()
364 } else if (bh && buffer_uptodate(bh)) { in ocfs2_read_blocks()
365 clear_buffer_uptodate(bh); in ocfs2_read_blocks()
372 if (!buffer_jbd(bh)) in ocfs2_read_blocks()
373 wait_on_buffer(bh); in ocfs2_read_blocks()
375 if (!buffer_uptodate(bh)) { in ocfs2_read_blocks()
383 clear_buffer_needs_validate(bh); in ocfs2_read_blocks()
387 if (buffer_needs_validate(bh)) { in ocfs2_read_blocks()
391 BUG_ON(buffer_jbd(bh)); in ocfs2_read_blocks()
392 clear_buffer_needs_validate(bh); in ocfs2_read_blocks()
393 status = validate(sb, bh); in ocfs2_read_blocks()
402 ocfs2_set_buffer_uptodate(ci, bh); in ocfs2_read_blocks()
439 struct buffer_head *bh) in ocfs2_write_super_or_backup() argument
442 struct ocfs2_dinode *di = (struct ocfs2_dinode *)bh->b_data; in ocfs2_write_super_or_backup()
444 BUG_ON(buffer_jbd(bh)); in ocfs2_write_super_or_backup()
445 ocfs2_check_super_or_backup(osb->sb, bh->b_blocknr); in ocfs2_write_super_or_backup()
453 lock_buffer(bh); in ocfs2_write_super_or_backup()
454 set_buffer_uptodate(bh); in ocfs2_write_super_or_backup()
457 clear_buffer_dirty(bh); in ocfs2_write_super_or_backup()
459 get_bh(bh); /* for end_buffer_write_sync() */ in ocfs2_write_super_or_backup()
460 bh->b_end_io = end_buffer_write_sync; in ocfs2_write_super_or_backup()
461 ocfs2_compute_meta_ecc(osb->sb, bh->b_data, &di->i_check); in ocfs2_write_super_or_backup()
462 submit_bh(WRITE, bh); in ocfs2_write_super_or_backup()
464 wait_on_buffer(bh); in ocfs2_write_super_or_backup()
466 if (!buffer_uptodate(bh)) { in ocfs2_write_super_or_backup()