• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/fs/jbd2/

Lines Matching refs:bh

27 static void journal_end_buffer_io_sync(struct buffer_head *bh, int uptodate)
29 BUFFER_TRACE(bh, "");
31 set_buffer_uptodate(bh);
33 clear_buffer_uptodate(bh);
34 unlock_buffer(bh);
51 static void release_buffer_page(struct buffer_head *bh)
55 if (buffer_dirty(bh))
57 if (atomic_read(&bh->b_count) != 1)
59 page = bh->b_page;
70 __brelse(bh);
77 __brelse(bh);
85 static int inverted_lock(journal_t *journal, struct buffer_head *bh)
87 if (!jbd_trylock_bh_state(bh)) {
106 struct buffer_head *bh;
117 bh = jh2bh(descriptor);
120 for (i = 0; i < bh->b_size; i += 512) {
121 journal_header_t *tmp = (journal_header_t*)bh->b_data;
128 set_buffer_dirty(bh);
130 set_buffer_ordered(bh);
133 ret = sync_dirty_buffer(bh);
151 clear_buffer_ordered(bh);
152 set_buffer_uptodate(bh);
153 set_buffer_dirty(bh);
154 ret = sync_dirty_buffer(bh);
156 put_bh(bh); /* One for getblk() */
180 struct buffer_head *bh;
199 bh = jh2bh(jh);
204 get_bh(bh);
210 if (buffer_dirty(bh)) {
211 if (test_set_buffer_locked(bh)) {
212 BUFFER_TRACE(bh, "needs blocking lock");
217 lock_buffer(bh);
223 if (!inverted_lock(journal, bh)) {
224 jbd_lock_bh_state(bh);
228 if (!buffer_jbd(bh)
231 jbd_unlock_bh_state(bh);
233 unlock_buffer(bh);
234 BUFFER_TRACE(bh, "already cleaned up");
235 put_bh(bh);
238 if (locked && test_clear_buffer_dirty(bh)) {
239 BUFFER_TRACE(bh, "needs writeout, adding to array");
240 wbuf[bufs++] = bh;
243 jbd_unlock_bh_state(bh);
250 } else if (!locked && buffer_locked(bh)) {
253 jbd_unlock_bh_state(bh);
254 put_bh(bh);
256 BUFFER_TRACE(bh, "writeout complete: unfile");
258 jbd_unlock_bh_state(bh);
260 unlock_buffer(bh);
261 jbd2_journal_remove_journal_head(bh);
264 put_bh(bh);
265 put_bh(bh);
384 struct buffer_head *bh = jh2bh(jh);
386 jbd_lock_bh_state(bh);
387 jbd2_slab_free(jh->b_committed_data, bh->b_size);
389 jbd_unlock_bh_state(bh);
447 struct buffer_head *bh;
450 bh = jh2bh(jh);
451 get_bh(bh);
452 if (buffer_locked(bh)) {
454 wait_on_buffer(bh);
455 if (unlikely(!buffer_uptodate(bh)))
459 if (!inverted_lock(journal, bh)) {
460 put_bh(bh);
464 if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) {
466 jbd_unlock_bh_state(bh);
467 jbd2_journal_remove_journal_head(bh);
468 put_bh(bh);
470 jbd_unlock_bh_state(bh);
472 put_bh(bh);
528 struct buffer_head *bh;
540 bh = jh2bh(descriptor);
542 (unsigned long long)bh->b_blocknr, bh->b_data);
543 header = (journal_header_t *)&bh->b_data[0];
548 tagp = &bh->b_data[sizeof(journal_header_t)];
549 space_left = bh->b_size - sizeof(journal_header_t);
551 set_buffer_jwrite(bh);
552 set_buffer_dirty(bh);
553 wbuf[bufs++] = bh;
557 BUFFER_TRACE(bh, "ph3: file as descriptor");
641 struct buffer_head *bh = wbuf[i];
642 lock_buffer(bh);
643 clear_buffer_dirty(bh);
644 set_buffer_uptodate(bh);
645 bh->b_end_io = journal_end_buffer_io_sync;
646 submit_bh(WRITE, bh);
676 struct buffer_head *bh;
679 bh = jh2bh(jh);
680 if (buffer_locked(bh)) {
681 wait_on_buffer(bh);
687 if (unlikely(!buffer_uptodate(bh)))
690 clear_buffer_jwrite(bh);
699 BUFFER_TRACE(bh, "dumping temporary bh");
701 __brelse(bh);
702 J_ASSERT_BH(bh, atomic_read(&bh->b_count) == 0);
703 free_buffer_head(bh);
708 bh = jh2bh(jh);
709 clear_bit(BH_JWrite, &bh->b_state);
710 J_ASSERT_BH(bh, buffer_jbddirty(bh));
720 wake_up_bit(&bh->b_state, BH_Unshadow);
722 __brelse(bh);
732 struct buffer_head *bh;
735 bh = jh2bh(jh);
736 if (buffer_locked(bh)) {
737 wait_on_buffer(bh);
743 if (unlikely(!buffer_uptodate(bh)))
746 BUFFER_TRACE(bh, "ph5: control buffer writeout done: unfile");
747 clear_buffer_jwrite(bh);
750 __brelse(bh); /* One for getblk */
784 struct buffer_head *bh;
788 bh = jh2bh(jh);
789 jbd_lock_bh_state(bh);
804 jbd2_slab_free(jh->b_committed_data, bh->b_size);
811 jbd2_slab_free(jh->b_frozen_data, bh->b_size);
836 if (buffer_freed(bh)) {
837 clear_buffer_freed(bh);
838 clear_buffer_jbddirty(bh);
841 if (buffer_jbddirty(bh)) {
846 jbd_unlock_bh_state(bh);
848 J_ASSERT_BH(bh, !buffer_dirty(bh));
859 jbd_unlock_bh_state(bh);
861 jbd2_journal_remove_journal_head(bh);
862 release_buffer_page(bh);
864 jbd_unlock_bh_state(bh);