Lines Matching defs:bh
27 * Bits on bh->b_state used by ocfs2.
38 int ocfs2_write_block(struct ocfs2_super *osb, struct buffer_head *bh,
43 trace_ocfs2_write_block((unsigned long long)bh->b_blocknr, ci);
45 BUG_ON(bh->b_blocknr < OCFS2_SUPER_BLOCK_BLKNO);
46 BUG_ON(buffer_jbd(bh));
59 lock_buffer(bh);
60 set_buffer_uptodate(bh);
63 clear_buffer_dirty(bh);
65 get_bh(bh); /* for end_buffer_write_sync() */
66 bh->b_end_io = end_buffer_write_sync;
67 submit_bh(REQ_OP_WRITE, bh);
69 wait_on_buffer(bh);
71 if (buffer_uptodate(bh)) {
72 ocfs2_set_buffer_uptodate(ci, bh);
75 * information for this bh as it's not marked locally
94 struct buffer_head *bh;
116 bh = bhs[i];
118 if (buffer_jbd(bh)) {
120 (unsigned long long)bh->b_blocknr);
124 if (buffer_dirty(bh)) {
130 (unsigned long long)bh->b_blocknr);
134 lock_buffer(bh);
135 if (buffer_jbd(bh)) {
140 (unsigned long long)bh->b_blocknr);
143 unlock_buffer(bh);
148 get_bh(bh); /* for end_buffer_read_sync() */
149 bh->b_end_io = end_buffer_read_sync;
150 submit_bh(REQ_OP_READ, bh);
155 bh = bhs[i - 1];
158 if (new_bh && bh) {
159 /* If middle bh fails, let previous bh
161 * avoid bh leak
163 if (!buffer_jbd(bh))
164 wait_on_buffer(bh);
165 put_bh(bh);
167 } else if (bh && buffer_uptodate(bh)) {
168 clear_buffer_uptodate(bh);
174 if (!buffer_jbd(bh))
175 wait_on_buffer(bh);
177 if (!buffer_uptodate(bh)) {
196 struct buffer_head *bh))
200 struct buffer_head *bh;
240 /* Don't forget to put previous bh! */
244 bh = bhs[i];
271 if (!ignore_cache && !ocfs2_buffer_uptodate(ci, bh)) {
273 (unsigned long long)bh->b_blocknr,
280 trace_ocfs2_read_blocks_bh((unsigned long long)bh->b_blocknr,
281 ignore_cache, buffer_jbd(bh), buffer_dirty(bh));
283 if (buffer_jbd(bh)) {
288 if (buffer_dirty(bh)) {
299 && ocfs2_buffer_read_ahead(ci, bh))
302 lock_buffer(bh);
303 if (buffer_jbd(bh)) {
307 (unsigned long long)bh->b_blocknr);
310 unlock_buffer(bh);
321 && ocfs2_buffer_uptodate(ci, bh)) {
322 unlock_buffer(bh);
326 get_bh(bh); /* for end_buffer_read_sync() */
328 set_buffer_needs_validate(bh);
329 bh->b_end_io = end_buffer_read_sync;
330 submit_bh(REQ_OP_READ, bh);
337 bh = bhs[i];
344 if (new_bh && bh) {
345 /* If middle bh fails, let previous bh
347 * avoid bh leak
349 if (!buffer_jbd(bh))
350 wait_on_buffer(bh);
351 put_bh(bh);
353 } else if (bh && buffer_uptodate(bh)) {
354 clear_buffer_uptodate(bh);
359 * owner sem. Avoid doing any work on the bh if the
361 if (!buffer_jbd(bh))
362 wait_on_buffer(bh);
364 if (!buffer_uptodate(bh)) {
369 * for this bh as it's not marked locally
372 clear_buffer_needs_validate(bh);
376 if (buffer_needs_validate(bh)) {
380 BUG_ON(buffer_jbd(bh));
381 clear_buffer_needs_validate(bh);
382 status = validate(sb, bh);
391 if (bh)
392 ocfs2_set_buffer_uptodate(ci, bh);
429 struct buffer_head *bh)
432 struct ocfs2_dinode *di = (struct ocfs2_dinode *)bh->b_data;
434 BUG_ON(buffer_jbd(bh));
435 ocfs2_check_super_or_backup(osb->sb, bh->b_blocknr);
443 lock_buffer(bh);
444 set_buffer_uptodate(bh);
447 clear_buffer_dirty(bh);
449 get_bh(bh); /* for end_buffer_write_sync() */
450 bh->b_end_io = end_buffer_write_sync;
451 ocfs2_compute_meta_ecc(osb->sb, bh->b_data, &di->i_check);
452 submit_bh(REQ_OP_WRITE, bh);
454 wait_on_buffer(bh);
456 if (!buffer_uptodate(bh)) {