Lines Matching refs:bh

497 static void warn_dirty_buffer(struct buffer_head *bh)  in warn_dirty_buffer()  argument
505 bdevname(bh->b_bdev, b), (unsigned long long)bh->b_blocknr); in warn_dirty_buffer()
522 struct buffer_head *bh; in do_get_write_access() local
539 bh = jh2bh(jh); in do_get_write_access()
543 lock_buffer(bh); in do_get_write_access()
544 jbd_lock_bh_state(bh); in do_get_write_access()
559 if (buffer_dirty(bh)) { in do_get_write_access()
572 warn_dirty_buffer(bh); in do_get_write_access()
580 clear_buffer_dirty(bh); in do_get_write_access()
581 set_buffer_jbddirty(bh); in do_get_write_access()
584 unlock_buffer(bh); in do_get_write_access()
588 jbd_unlock_bh_state(bh); in do_get_write_access()
636 DEFINE_WAIT_BIT(wait, &bh->b_state, BH_Unshadow); in do_get_write_access()
639 wqh = bit_waitqueue(&bh->b_state, BH_Unshadow); in do_get_write_access()
642 jbd_unlock_bh_state(bh); in do_get_write_access()
673 jbd_unlock_bh_state(bh); in do_get_write_access()
683 jbd_lock_bh_state(bh); in do_get_write_access()
724 jbd_unlock_bh_state(bh); in do_get_write_access()
734 jbd_free(frozen_buffer, bh->b_size); in do_get_write_access()
751 int journal_get_write_access(handle_t *handle, struct buffer_head *bh) in journal_get_write_access() argument
753 struct journal_head *jh = journal_add_journal_head(bh); in journal_get_write_access()
784 int journal_get_create_access(handle_t *handle, struct buffer_head *bh) in journal_get_create_access() argument
788 struct journal_head *jh = journal_add_journal_head(bh); in journal_get_create_access()
805 jbd_lock_bh_state(bh); in journal_get_create_access()
839 jbd_unlock_bh_state(bh); in journal_get_create_access()
880 int journal_get_undo_access(handle_t *handle, struct buffer_head *bh) in journal_get_undo_access() argument
883 struct journal_head *jh = journal_add_journal_head(bh); in journal_get_undo_access()
908 jbd_lock_bh_state(bh); in journal_get_undo_access()
914 jbd_unlock_bh_state(bh); in journal_get_undo_access()
920 memcpy(jh->b_committed_data, bh->b_data, bh->b_size); in journal_get_undo_access()
922 jbd_unlock_bh_state(bh); in journal_get_undo_access()
926 jbd_free(committed_data, bh->b_size); in journal_get_undo_access()
947 int journal_dirty_data(handle_t *handle, struct buffer_head *bh) in journal_dirty_data() argument
957 jh = journal_add_journal_head(bh); in journal_dirty_data()
987 jbd_lock_bh_state(bh); in journal_dirty_data()
991 if (!buffer_mapped(bh)) { in journal_dirty_data()
1049 if (buffer_dirty(bh)) { in journal_dirty_data()
1050 get_bh(bh); in journal_dirty_data()
1052 jbd_unlock_bh_state(bh); in journal_dirty_data()
1054 sync_dirty_buffer(bh); in journal_dirty_data()
1055 jbd_lock_bh_state(bh); in journal_dirty_data()
1058 if (!buffer_mapped(bh)) { in journal_dirty_data()
1071 if (unlikely(!buffer_uptodate(bh))) { in journal_dirty_data()
1108 jbd_unlock_bh_state(bh); in journal_dirty_data()
1110 BUFFER_TRACE(bh, "brelse"); in journal_dirty_data()
1111 __brelse(bh); in journal_dirty_data()
1137 int journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) in journal_dirty_metadata() argument
1141 struct journal_head *jh = bh2jh(bh); in journal_dirty_metadata()
1148 jbd_lock_bh_state(bh); in journal_dirty_metadata()
1175 set_buffer_jbddirty(bh); in journal_dirty_metadata()
1201 jbd_unlock_bh_state(bh); in journal_dirty_metadata()
1213 journal_release_buffer(handle_t *handle, struct buffer_head *bh) in journal_release_buffer() argument
1215 BUFFER_TRACE(bh, "entry"); in journal_release_buffer()
1235 int journal_forget (handle_t *handle, struct buffer_head *bh) in journal_forget() argument
1244 BUFFER_TRACE(bh, "entry"); in journal_forget()
1246 jbd_lock_bh_state(bh); in journal_forget()
1249 if (!buffer_jbd(bh)) in journal_forget()
1251 jh = bh2jh(bh); in journal_forget()
1276 clear_buffer_dirty(bh); in journal_forget()
1277 clear_buffer_jbddirty(bh); in journal_forget()
1305 if (!buffer_jbd(bh)) { in journal_forget()
1307 jbd_unlock_bh_state(bh); in journal_forget()
1308 __bforget(bh); in journal_forget()
1336 jbd_unlock_bh_state(bh); in journal_forget()
1337 __brelse(bh); in journal_forget()
1575 struct buffer_head *bh = jh2bh(jh); in __journal_temp_unlink_buffer() local
1577 J_ASSERT_JH(jh, jbd_is_locked_bh_state(bh)); in __journal_temp_unlink_buffer()
1619 if (test_clear_buffer_jbddirty(bh)) in __journal_temp_unlink_buffer()
1620 mark_buffer_dirty(bh); /* Expose it to the VM */ in __journal_temp_unlink_buffer()
1639 struct buffer_head *bh = jh2bh(jh); in journal_unfile_buffer() local
1642 get_bh(bh); in journal_unfile_buffer()
1643 jbd_lock_bh_state(bh); in journal_unfile_buffer()
1647 jbd_unlock_bh_state(bh); in journal_unfile_buffer()
1648 __brelse(bh); in journal_unfile_buffer()
1657 __journal_try_to_free_buffer(journal_t *journal, struct buffer_head *bh) in __journal_try_to_free_buffer() argument
1661 jh = bh2jh(bh); in __journal_try_to_free_buffer()
1663 if (buffer_locked(bh) || buffer_dirty(bh)) in __journal_try_to_free_buffer()
1730 struct buffer_head *bh; in journal_try_to_free_buffers() local
1736 bh = head; in journal_try_to_free_buffers()
1745 jh = journal_grab_journal_head(bh); in journal_try_to_free_buffers()
1749 jbd_lock_bh_state(bh); in journal_try_to_free_buffers()
1750 __journal_try_to_free_buffer(journal, bh); in journal_try_to_free_buffers()
1752 jbd_unlock_bh_state(bh); in journal_try_to_free_buffers()
1753 if (buffer_jbd(bh)) in journal_try_to_free_buffers()
1755 } while ((bh = bh->b_this_page) != head); in journal_try_to_free_buffers()
1778 struct buffer_head *bh = jh2bh(jh); in __dispose_buffer() local
1788 clear_buffer_dirty(bh); in __dispose_buffer()
1845 static int journal_unmap_buffer(journal_t *journal, struct buffer_head *bh, in journal_unmap_buffer() argument
1852 BUFFER_TRACE(bh, "entry"); in journal_unmap_buffer()
1861 if (!buffer_jbd(bh)) in journal_unmap_buffer()
1865 jbd_lock_bh_state(bh); in journal_unmap_buffer()
1868 jh = journal_grab_journal_head(bh); in journal_unmap_buffer()
1906 if (!buffer_dirty(bh)) { in journal_unmap_buffer()
1936 clear_buffer_jbddirty(bh); in journal_unmap_buffer()
1961 jbd_unlock_bh_state(bh); in journal_unmap_buffer()
1963 unlock_buffer(bh); in journal_unmap_buffer()
1965 lock_buffer(bh); in journal_unmap_buffer()
1974 set_buffer_freed(bh); in journal_unmap_buffer()
1975 if (journal->j_running_transaction && buffer_jbddirty(bh)) in journal_unmap_buffer()
1979 jbd_unlock_bh_state(bh); in journal_unmap_buffer()
2006 jbd_unlock_bh_state(bh); in journal_unmap_buffer()
2009 clear_buffer_dirty(bh); in journal_unmap_buffer()
2010 J_ASSERT_BH(bh, !buffer_jbddirty(bh)); in journal_unmap_buffer()
2011 clear_buffer_mapped(bh); in journal_unmap_buffer()
2012 clear_buffer_req(bh); in journal_unmap_buffer()
2013 clear_buffer_new(bh); in journal_unmap_buffer()
2014 bh->b_bdev = NULL; in journal_unmap_buffer()
2032 struct buffer_head *head, *bh, *next; in journal_invalidatepage() local
2049 head = bh = page_buffers(page); in journal_invalidatepage()
2051 unsigned int next_off = curr_off + bh->b_size; in journal_invalidatepage()
2052 next = bh->b_this_page; in journal_invalidatepage()
2059 lock_buffer(bh); in journal_invalidatepage()
2060 may_free &= journal_unmap_buffer(journal, bh, in journal_invalidatepage()
2062 unlock_buffer(bh); in journal_invalidatepage()
2065 bh = next; in journal_invalidatepage()
2067 } while (bh != head); in journal_invalidatepage()
2083 struct buffer_head *bh = jh2bh(jh); in __journal_file_buffer() local
2085 J_ASSERT_JH(jh, jbd_is_locked_bh_state(bh)); in __journal_file_buffer()
2104 if (buffer_dirty(bh)) in __journal_file_buffer()
2105 warn_dirty_buffer(bh); in __journal_file_buffer()
2106 if (test_clear_buffer_dirty(bh) || in __journal_file_buffer()
2107 test_clear_buffer_jbddirty(bh)) in __journal_file_buffer()
2114 journal_grab_journal_head(bh); in __journal_file_buffer()
2153 set_buffer_jbddirty(bh); in __journal_file_buffer()
2180 struct buffer_head *bh = jh2bh(jh); in __journal_refile_buffer() local
2182 J_ASSERT_JH(jh, jbd_is_locked_bh_state(bh)); in __journal_refile_buffer()
2197 was_dirty = test_clear_buffer_jbddirty(bh); in __journal_refile_buffer()
2206 if (buffer_freed(bh)) in __journal_refile_buffer()
2216 set_buffer_jbddirty(bh); in __journal_refile_buffer()
2227 struct buffer_head *bh = jh2bh(jh); in journal_refile_buffer() local
2230 get_bh(bh); in journal_refile_buffer()
2231 jbd_lock_bh_state(bh); in journal_refile_buffer()
2234 jbd_unlock_bh_state(bh); in journal_refile_buffer()
2236 __brelse(bh); in journal_refile_buffer()