Lines Matching refs:bh
96 struct buffer_head *bh = jh2bh(jh); in __try_to_free_cp_buf() local
98 if (jh->b_jlist == BJ_None && !buffer_locked(bh) && in __try_to_free_cp_buf()
99 !buffer_dirty(bh) && !buffer_write_io_error(bh)) { in __try_to_free_cp_buf()
104 get_bh(bh); in __try_to_free_cp_buf()
107 jbd_unlock_bh_state(bh); in __try_to_free_cp_buf()
108 BUFFER_TRACE(bh, "release"); in __try_to_free_cp_buf()
109 __brelse(bh); in __try_to_free_cp_buf()
111 jbd_unlock_bh_state(bh); in __try_to_free_cp_buf()
186 static void jbd_sync_bh(journal_t *journal, struct buffer_head *bh) in jbd_sync_bh() argument
189 get_bh(bh); in jbd_sync_bh()
191 jbd_lock_bh_state(bh); in jbd_sync_bh()
192 jbd_unlock_bh_state(bh); in jbd_sync_bh()
193 put_bh(bh); in jbd_sync_bh()
210 struct buffer_head *bh; in __wait_cp_io() local
223 bh = jh2bh(jh); in __wait_cp_io()
224 if (!jbd_trylock_bh_state(bh)) { in __wait_cp_io()
225 jbd_sync_bh(journal, bh); in __wait_cp_io()
229 get_bh(bh); in __wait_cp_io()
230 if (buffer_locked(bh)) { in __wait_cp_io()
232 jbd_unlock_bh_state(bh); in __wait_cp_io()
233 wait_on_buffer(bh); in __wait_cp_io()
235 BUFFER_TRACE(bh, "brelse"); in __wait_cp_io()
236 __brelse(bh); in __wait_cp_io()
240 if (unlikely(buffer_write_io_error(bh))) in __wait_cp_io()
248 jbd_unlock_bh_state(bh); in __wait_cp_io()
249 __brelse(bh); in __wait_cp_io()
269 struct buffer_head *bh = bhs[i]; in __flush_batch() local
270 clear_buffer_jwrite(bh); in __flush_batch()
271 BUFFER_TRACE(bh, "brelse"); in __flush_batch()
272 __brelse(bh); in __flush_batch()
290 struct buffer_head *bh = jh2bh(jh); in __process_buffer() local
293 if (buffer_locked(bh)) { in __process_buffer()
294 get_bh(bh); in __process_buffer()
296 jbd_unlock_bh_state(bh); in __process_buffer()
297 wait_on_buffer(bh); in __process_buffer()
299 BUFFER_TRACE(bh, "brelse"); in __process_buffer()
300 __brelse(bh); in __process_buffer()
307 jbd_unlock_bh_state(bh); in __process_buffer()
311 } else if (!buffer_dirty(bh)) { in __process_buffer()
313 if (unlikely(buffer_write_io_error(bh))) in __process_buffer()
315 get_bh(bh); in __process_buffer()
316 J_ASSERT_JH(jh, !buffer_jbddirty(bh)); in __process_buffer()
317 BUFFER_TRACE(bh, "remove from checkpoint"); in __process_buffer()
320 jbd_unlock_bh_state(bh); in __process_buffer()
321 __brelse(bh); in __process_buffer()
330 BUFFER_TRACE(bh, "queue"); in __process_buffer()
331 get_bh(bh); in __process_buffer()
332 J_ASSERT_BH(bh, !buffer_jwrite(bh)); in __process_buffer()
333 set_buffer_jwrite(bh); in __process_buffer()
334 bhs[*batch_count] = bh; in __process_buffer()
336 jbd_unlock_bh_state(bh); in __process_buffer()
398 struct buffer_head *bh; in log_do_checkpoint() local
401 bh = jh2bh(jh); in log_do_checkpoint()
402 if (!jbd_trylock_bh_state(bh)) { in log_do_checkpoint()
403 jbd_sync_bh(journal, bh); in log_do_checkpoint()