• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/jbd2/

Lines Matching refs:journal

90  * mode we can now just skip the rest of the journal write
93 * Returns 1 if the journal needs to be aborted or 0 on success
95 static int journal_submit_commit_record(journal_t *journal,
106 if (is_journal_aborted(journal))
109 descriptor = jbd2_journal_get_descriptor_buffer(journal);
122 if (JBD2_HAS_COMPAT_FEATURE(journal,
135 if (journal->j_flags & JBD2_BARRIER &&
136 !JBD2_HAS_INCOMPAT_FEATURE(journal,
142 "not supported by device\n", journal->j_devname);
143 write_lock(&journal->j_state_lock);
144 journal->j_flags &= ~JBD2_BARRIER;
145 write_unlock(&journal->j_state_lock);
164 static int journal_wait_on_commit_record(journal_t *journal,
172 if (buffer_eopnotsupp(bh) && (journal->j_flags & JBD2_BARRIER)) {
175 "by device\n", __func__, journal->j_devname);
176 write_lock(&journal->j_state_lock);
177 journal->j_flags &= ~JBD2_BARRIER;
178 write_unlock(&journal->j_state_lock);
229 static int journal_submit_data_buffers(journal_t *journal,
236 spin_lock(&journal->j_list_lock);
240 spin_unlock(&journal->j_list_lock);
251 spin_lock(&journal->j_list_lock);
257 spin_unlock(&journal->j_list_lock);
266 static int journal_finish_inode_data_buffers(journal_t *journal,
273 spin_lock(&journal->j_list_lock);
276 spin_unlock(&journal->j_list_lock);
290 spin_lock(&journal->j_list_lock);
308 spin_unlock(&journal->j_list_lock);
339 * function is called by the journal thread to begin a complete commit.
341 void jbd2_journal_commit_transaction(journal_t *journal)
346 struct buffer_head **wbuf = journal->j_wbuf;
360 int tag_bytes = journal_tag_bytes(journal);
371 spin_lock(&journal->j_list_lock);
372 summarise_journal_usage(journal);
373 spin_unlock(&journal->j_list_lock);
377 if (journal->j_flags & JBD2_FLUSHED) {
379 jbd2_journal_update_superblock(journal, 1);
384 J_ASSERT(journal->j_running_transaction != NULL);
385 J_ASSERT(journal->j_committing_transaction == NULL);
387 commit_transaction = journal->j_running_transaction;
390 trace_jbd2_start_commit(journal, commit_transaction);
394 write_lock(&journal->j_state_lock);
404 trace_jbd2_commit_locking(journal, commit_transaction);
414 prepare_to_wait(&journal->j_wait_updates, &wait,
418 write_unlock(&journal->j_state_lock);
420 write_lock(&journal->j_state_lock);
423 finish_wait(&journal->j_wait_updates, &wait);
428 journal->j_max_transaction_buffers);
461 jbd2_journal_refile_buffer(journal, jh);
465 * Now try to drop any written-back buffers from the journal's
469 spin_lock(&journal->j_list_lock);
470 __jbd2_journal_clean_checkpoint_list(journal);
471 spin_unlock(&journal->j_list_lock);
478 jbd2_journal_switch_revoke_table(journal);
480 trace_jbd2_commit_flushing(journal, commit_transaction);
486 journal->j_committing_transaction = commit_transaction;
487 journal->j_running_transaction = NULL;
489 commit_transaction->t_log_start = journal->j_head;
490 wake_up(&journal->j_wait_transaction_locked);
491 write_unlock(&journal->j_state_lock);
499 err = journal_submit_data_buffers(journal, commit_transaction);
501 jbd2_journal_abort(journal, err);
503 jbd2_journal_write_revoke_records(journal, commit_transaction,
513 write_lock(&journal->j_state_lock);
515 write_unlock(&journal->j_state_lock);
517 trace_jbd2_commit_logging(journal, commit_transaction);
537 /* If we're in abort mode, we just un-journal the buffer and
540 if (is_journal_aborted(journal)) {
542 JBUFFER_TRACE(jh, "journal is aborting: refile");
547 jbd2_journal_refile_buffer(journal, jh);
567 descriptor = jbd2_journal_get_descriptor_buffer(journal);
569 jbd2_journal_abort(journal, -EIO);
597 err = jbd2_journal_next_log_block(journal, &blocknr);
602 jbd2_journal_abort(journal, err);
633 jbd2_journal_abort(journal, flags);
655 memcpy (tagp, journal->j_uuid, 16);
664 if (bufs == journal->j_wbufsize ||
682 if (JBD2_HAS_COMPAT_FEATURE(journal,
705 * If the journal is not located on the file system device,
710 (journal->j_fs_dev != journal->j_dev) &&
711 (journal->j_flags & JBD2_BARRIER))
712 blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL,
716 if (JBD2_HAS_INCOMPAT_FEATURE(journal,
718 err = journal_submit_commit_record(journal, commit_transaction,
721 __jbd2_journal_abort_hard(journal);
722 if (journal->j_flags & JBD2_BARRIER)
723 blkdev_issue_flush(journal->j_dev, GFP_KERNEL, NULL,
727 err = journal_finish_inode_data_buffers(journal, commit_transaction);
731 "on %s\n", journal->j_devname);
732 if (journal->j_flags & JBD2_ABORT_ON_SYNCDATA_ERR)
733 jbd2_journal_abort(journal, err);
772 JBUFFER_TRACE(jh, "ph4: unfile after journal write");
773 jbd2_journal_unfile_buffer(journal, jh);
828 jbd2_journal_unfile_buffer(journal, jh);
835 jbd2_journal_abort(journal, err);
839 if (!JBD2_HAS_INCOMPAT_FEATURE(journal,
841 err = journal_submit_commit_record(journal, commit_transaction,
844 __jbd2_journal_abort_hard(journal);
846 if (!err && !is_journal_aborted(journal))
847 err = journal_wait_on_commit_record(journal, cbh);
850 jbd2_journal_abort(journal, err);
871 spin_lock(&journal->j_list_lock);
877 spin_unlock(&journal->j_list_lock);
909 spin_lock(&journal->j_list_lock);
939 if (is_journal_aborted(journal))
963 cond_resched_lock(&journal->j_list_lock);
965 spin_unlock(&journal->j_list_lock);
972 write_lock(&journal->j_state_lock);
973 spin_lock(&journal->j_list_lock);
979 spin_unlock(&journal->j_list_lock);
980 write_unlock(&journal->j_state_lock);
1000 trace_jbd2_run_stats(journal->j_fs_dev->bd_dev,
1006 spin_lock(&journal->j_history_lock);
1007 journal->j_stats.ts_tid++;
1008 journal->j_stats.run.rs_wait += stats.run.rs_wait;
1009 journal->j_stats.run.rs_running += stats.run.rs_running;
1010 journal->j_stats.run.rs_locked += stats.run.rs_locked;
1011 journal->j_stats.run.rs_flushing += stats.run.rs_flushing;
1012 journal->j_stats.run.rs_logging += stats.run.rs_logging;
1013 journal->j_stats.run.rs_handle_count += stats.run.rs_handle_count;
1014 journal->j_stats.run.rs_blocks += stats.run.rs_blocks;
1015 journal->j_stats.run.rs_blocks_logged += stats.run.rs_blocks_logged;
1016 spin_unlock(&journal->j_history_lock);
1019 J_ASSERT(commit_transaction == journal->j_committing_transaction);
1020 journal->j_commit_sequence = commit_transaction->t_tid;
1021 journal->j_committing_transaction = NULL;
1028 if (likely(journal->j_average_commit_time))
1029 journal->j_average_commit_time = (commit_time +
1030 journal->j_average_commit_time*3) / 4;
1032 journal->j_average_commit_time = commit_time;
1033 write_unlock(&journal->j_state_lock);
1037 __jbd2_journal_drop_transaction(journal, commit_transaction);
1040 if (journal->j_checkpoint_transactions == NULL) {
1041 journal->j_checkpoint_transactions = commit_transaction;
1046 journal->j_checkpoint_transactions;
1055 spin_unlock(&journal->j_list_lock);
1057 if (journal->j_commit_callback)
1058 journal->j_commit_callback(journal, commit_transaction);
1060 trace_jbd2_end_commit(journal, commit_transaction);
1062 journal->j_commit_sequence, journal->j_tail_sequence);
1066 wake_up(&journal->j_wait_done_commit);