Lines Matching refs: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 * aovoid 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;
241 /* Don't forget to put previous bh! */
245 bh = bhs[i];
272 if (!ignore_cache && !ocfs2_buffer_uptodate(ci, bh)) {
274 (unsigned long long)bh->b_blocknr,
281 trace_ocfs2_read_blocks_bh((unsigned long long)bh->b_blocknr,
282 ignore_cache, buffer_jbd(bh), buffer_dirty(bh));
284 if (buffer_jbd(bh)) {
289 if (buffer_dirty(bh)) {
300 && ocfs2_buffer_read_ahead(ci, bh))
303 lock_buffer(bh);
304 if (buffer_jbd(bh)) {
308 (unsigned long long)bh->b_blocknr);
311 unlock_buffer(bh);
322 && ocfs2_buffer_uptodate(ci, bh)) {
323 unlock_buffer(bh);
327 get_bh(bh); /* for end_buffer_read_sync() */
329 set_buffer_needs_validate(bh);
330 bh->b_end_io = end_buffer_read_sync;
331 submit_bh(REQ_OP_READ, bh);
338 bh = bhs[i];
345 if (new_bh && bh) {
346 /* If middle bh fails, let previous bh
348 * aovoid bh leak
350 if (!buffer_jbd(bh))
351 wait_on_buffer(bh);
352 put_bh(bh);
354 } else if (bh && buffer_uptodate(bh)) {
355 clear_buffer_uptodate(bh);
360 * owner sem. Avoid doing any work on the bh if the
362 if (!buffer_jbd(bh))
363 wait_on_buffer(bh);
365 if (!buffer_uptodate(bh)) {
370 * for this bh as it's not marked locally
373 clear_buffer_needs_validate(bh);
377 if (buffer_needs_validate(bh)) {
381 BUG_ON(buffer_jbd(bh));
382 clear_buffer_needs_validate(bh);
383 status = validate(sb, 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)) {