Lines Matching refs:bh
29 * Bits on bh->b_state used by ocfs2.
40 int ocfs2_write_block(struct ocfs2_super *osb, struct buffer_head *bh,
45 trace_ocfs2_write_block((unsigned long long)bh->b_blocknr, ci);
47 BUG_ON(bh->b_blocknr < OCFS2_SUPER_BLOCK_BLKNO);
48 BUG_ON(buffer_jbd(bh));
61 lock_buffer(bh);
62 set_buffer_uptodate(bh);
65 clear_buffer_dirty(bh);
67 get_bh(bh); /* for end_buffer_write_sync() */
68 bh->b_end_io = end_buffer_write_sync;
69 submit_bh(REQ_OP_WRITE, 0, bh);
71 wait_on_buffer(bh);
73 if (buffer_uptodate(bh)) {
74 ocfs2_set_buffer_uptodate(ci, bh);
77 * information for this bh as it's not marked locally
96 struct buffer_head *bh;
118 bh = bhs[i];
120 if (buffer_jbd(bh)) {
122 (unsigned long long)bh->b_blocknr);
126 if (buffer_dirty(bh)) {
132 (unsigned long long)bh->b_blocknr);
136 lock_buffer(bh);
137 if (buffer_jbd(bh)) {
142 (unsigned long long)bh->b_blocknr);
145 unlock_buffer(bh);
150 get_bh(bh); /* for end_buffer_read_sync() */
151 bh->b_end_io = end_buffer_read_sync;
152 submit_bh(REQ_OP_READ, 0, bh);
157 bh = bhs[i - 1];
160 if (new_bh && bh) {
161 /* If middle bh fails, let previous bh
163 * aovoid bh leak
165 if (!buffer_jbd(bh))
166 wait_on_buffer(bh);
167 put_bh(bh);
169 } else if (bh && buffer_uptodate(bh)) {
170 clear_buffer_uptodate(bh);
176 if (!buffer_jbd(bh))
177 wait_on_buffer(bh);
179 if (!buffer_uptodate(bh)) {
198 struct buffer_head *bh))
202 struct buffer_head *bh;
243 /* Don't forget to put previous bh! */
247 bh = bhs[i];
274 if (!ignore_cache && !ocfs2_buffer_uptodate(ci, bh)) {
276 (unsigned long long)bh->b_blocknr,
283 trace_ocfs2_read_blocks_bh((unsigned long long)bh->b_blocknr,
284 ignore_cache, buffer_jbd(bh), buffer_dirty(bh));
286 if (buffer_jbd(bh)) {
291 if (buffer_dirty(bh)) {
302 && ocfs2_buffer_read_ahead(ci, bh))
305 lock_buffer(bh);
306 if (buffer_jbd(bh)) {
310 (unsigned long long)bh->b_blocknr);
313 unlock_buffer(bh);
324 && ocfs2_buffer_uptodate(ci, bh)) {
325 unlock_buffer(bh);
329 get_bh(bh); /* for end_buffer_read_sync() */
331 set_buffer_needs_validate(bh);
332 bh->b_end_io = end_buffer_read_sync;
333 submit_bh(REQ_OP_READ, 0, bh);
340 bh = bhs[i];
347 if (new_bh && bh) {
348 /* If middle bh fails, let previous bh
350 * aovoid bh leak
352 if (!buffer_jbd(bh))
353 wait_on_buffer(bh);
354 put_bh(bh);
356 } else if (bh && buffer_uptodate(bh)) {
357 clear_buffer_uptodate(bh);
362 * owner sem. Avoid doing any work on the bh if the
364 if (!buffer_jbd(bh))
365 wait_on_buffer(bh);
367 if (!buffer_uptodate(bh)) {
372 * for this bh as it's not marked locally
375 clear_buffer_needs_validate(bh);
379 if (buffer_needs_validate(bh)) {
383 BUG_ON(buffer_jbd(bh));
384 clear_buffer_needs_validate(bh);
385 status = validate(sb, bh);
394 ocfs2_set_buffer_uptodate(ci, bh);
431 struct buffer_head *bh)
434 struct ocfs2_dinode *di = (struct ocfs2_dinode *)bh->b_data;
436 BUG_ON(buffer_jbd(bh));
437 ocfs2_check_super_or_backup(osb->sb, bh->b_blocknr);
445 lock_buffer(bh);
446 set_buffer_uptodate(bh);
449 clear_buffer_dirty(bh);
451 get_bh(bh); /* for end_buffer_write_sync() */
452 bh->b_end_io = end_buffer_write_sync;
453 ocfs2_compute_meta_ecc(osb->sb, bh->b_data, &di->i_check);
454 submit_bh(REQ_OP_WRITE, 0, bh);
456 wait_on_buffer(bh);
458 if (!buffer_uptodate(bh)) {