/kernel/linux/linux-5.10/fs/jbd2/ |
D | journal.c | 149 journal_t *journal = from_timer(journal, t, j_commit_timer); in commit_timeout() local 151 wake_up_process(journal->j_task); in commit_timeout() 174 journal_t *journal = arg; in kjournald2() local 181 timer_setup(&journal->j_commit_timer, commit_timeout, 0); in kjournald2() 186 journal->j_task = current; in kjournald2() 187 wake_up(&journal->j_wait_done_commit); in kjournald2() 200 write_lock(&journal->j_state_lock); in kjournald2() 203 if (journal->j_flags & JBD2_UNMOUNT) in kjournald2() 207 journal->j_commit_sequence, journal->j_commit_request); in kjournald2() 209 if (journal->j_commit_sequence != journal->j_commit_request) { in kjournald2() [all …]
|
D | checkpoint.c | 100 void __jbd2_log_wait_for_space(journal_t *journal) in __jbd2_log_wait_for_space() argument 101 __acquires(&journal->j_state_lock) in __jbd2_log_wait_for_space() 102 __releases(&journal->j_state_lock) in __jbd2_log_wait_for_space() 107 nblocks = journal->j_max_transaction_buffers; in __jbd2_log_wait_for_space() 108 while (jbd2_log_space_left(journal) < nblocks) { in __jbd2_log_wait_for_space() 109 write_unlock(&journal->j_state_lock); in __jbd2_log_wait_for_space() 110 mutex_lock_io(&journal->j_checkpoint_mutex); in __jbd2_log_wait_for_space() 123 write_lock(&journal->j_state_lock); in __jbd2_log_wait_for_space() 124 if (journal->j_flags & JBD2_ABORT) { in __jbd2_log_wait_for_space() 125 mutex_unlock(&journal->j_checkpoint_mutex); in __jbd2_log_wait_for_space() [all …]
|
D | commit.c | 116 static int journal_submit_commit_record(journal_t *journal, in journal_submit_commit_record() argument 128 if (is_journal_aborted(journal)) in journal_submit_commit_record() 141 if (jbd2_has_feature_checksum(journal)) { in journal_submit_commit_record() 146 jbd2_commit_block_csum_set(journal, bh); in journal_submit_commit_record() 154 if (journal->j_flags & JBD2_BARRIER && in journal_submit_commit_record() 155 !jbd2_has_feature_async_commit(journal)) in journal_submit_commit_record() 169 static int journal_wait_on_commit_record(journal_t *journal, in journal_wait_on_commit_record() argument 222 int jbd2_wait_inode_data(journal_t *journal, struct jbd2_inode *jinode) in jbd2_wait_inode_data() argument 241 static int journal_submit_data_buffers(journal_t *journal, in journal_submit_data_buffers() argument 247 spin_lock(&journal->j_list_lock); in journal_submit_data_buffers() [all …]
|
D | transaction.c | 68 static int jbd2_descriptor_blocks_per_trans(journal_t *journal) in jbd2_descriptor_blocks_per_trans() argument 70 int tag_space = journal->j_blocksize - sizeof(journal_header_t); in jbd2_descriptor_blocks_per_trans() 75 if (jbd2_journal_has_csum_v2or3(journal)) in jbd2_descriptor_blocks_per_trans() 78 tags_per_block = (tag_space - 16) / journal_tag_bytes(journal); in jbd2_descriptor_blocks_per_trans() 83 return 1 + DIV_ROUND_UP(journal->j_max_transaction_buffers, in jbd2_descriptor_blocks_per_trans() 102 static void jbd2_get_transaction(journal_t *journal, in jbd2_get_transaction() argument 105 transaction->t_journal = journal; in jbd2_get_transaction() 108 transaction->t_tid = journal->j_transaction_sequence++; in jbd2_get_transaction() 109 transaction->t_expires = jiffies + journal->j_commit_interval; in jbd2_get_transaction() 113 jbd2_descriptor_blocks_per_trans(journal) + in jbd2_get_transaction() [all …]
|
D | revoke.c | 131 static inline int hash(journal_t *journal, unsigned long long block) in hash() argument 133 return hash_64(block, journal->j_revoke->hash_shift); in hash() 136 static int insert_revoke_hash(journal_t *journal, unsigned long long blocknr, in insert_revoke_hash() argument 151 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)]; in insert_revoke_hash() 152 spin_lock(&journal->j_revoke_lock); in insert_revoke_hash() 154 spin_unlock(&journal->j_revoke_lock); in insert_revoke_hash() 160 static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal, in find_revoke_record() argument 166 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)]; in find_revoke_record() 168 spin_lock(&journal->j_revoke_lock); in find_revoke_record() 172 spin_unlock(&journal->j_revoke_lock); in find_revoke_record() [all …]
|
D | recovery.c | 38 static int do_one_pass(journal_t *journal, 66 static int do_readahead(journal_t *journal, unsigned int start) in do_readahead() argument 76 max = start + (128 * 1024 / journal->j_blocksize); in do_readahead() 77 if (max > journal->j_total_len) in do_readahead() 78 max = journal->j_total_len; in do_readahead() 86 err = jbd2_journal_bmap(journal, next, &blocknr); in do_readahead() 94 bh = __getblk(journal->j_dev, blocknr, journal->j_blocksize); in do_readahead() 128 static int jread(struct buffer_head **bhp, journal_t *journal, in jread() argument 137 if (offset >= journal->j_total_len) { in jread() 142 err = jbd2_journal_bmap(journal, offset, &blocknr); in jread() [all …]
|
/kernel/linux/linux-5.10/fs/reiserfs/ |
D | journal.c | 94 struct reiserfs_journal *journal); 115 struct reiserfs_journal *journal = SB_JOURNAL(sb); in init_journal_hash() local 116 memset(journal->j_hash_table, 0, in init_journal_hash() 157 struct reiserfs_journal *journal = SB_JOURNAL(sb); in get_bitmap_node() local 159 struct list_head *entry = journal->j_bitmap_nodes.next; in get_bitmap_node() 161 journal->j_used_bitmap_nodes++; in get_bitmap_node() 164 if (entry != &journal->j_bitmap_nodes) { in get_bitmap_node() 168 journal->j_free_bitmap_nodes--; in get_bitmap_node() 181 struct reiserfs_journal *journal = SB_JOURNAL(sb); in free_bitmap_node() local 182 journal->j_used_bitmap_nodes--; in free_bitmap_node() [all …]
|
/kernel/linux/linux-5.10/drivers/md/bcache/ |
D | journal.c | 38 struct journal_device *ja = &ca->journal; in journal_read_bucket() 42 struct jset *j, *data = ca->set->journal.w[0].data; in journal_read_bucket() 184 struct journal_device *ja = &ca->journal; in bch_journal_read() 286 c->journal.seq = list_entry(list->prev, in bch_journal_read() 299 struct journal *j = &c->journal; in bch_journal_mark() 420 if (c->journal.btree_flushing) in btree_flush_write() 423 spin_lock(&c->journal.flush_write_lock); in btree_flush_write() 424 if (c->journal.btree_flushing) { in btree_flush_write() 425 spin_unlock(&c->journal.flush_write_lock); in btree_flush_write() 428 c->journal.btree_flushing = true; in btree_flush_write() [all …]
|
D | journal.h | 104 struct journal { struct 162 (fifo_idx(&(c)->journal.pin, (l)) > fifo_idx(&(c)->journal.pin, (r))) 177 void bch_journal_next(struct journal *j);
|
/kernel/linux/linux-5.10/include/linux/ |
D | jbd2.h | 1288 void (*j_fc_cleanup_callback)(struct journal_s *journal, int); 1301 int (*j_fc_replay_callback)(struct journal_s *journal, 1424 int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid, 1426 int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block); 1427 void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block); 1433 void __jbd2_journal_clean_checkpoint_list(journal_t *journal, bool destroy); 1434 unsigned long jbd2_journal_shrink_checkpoint_list(journal_t *journal, unsigned long *nr_to_scan); 1436 void jbd2_journal_destroy_checkpoint(journal_t *journal); 1526 extern int jbd2_journal_try_to_free_buffers(journal_t *journal, struct page *page); 1545 extern int jbd2_journal_load (journal_t *journal); [all …]
|
/kernel/linux/linux-5.10/fs/ocfs2/ |
D | journal.c | 63 static void ocfs2_queue_recovery_completion(struct ocfs2_journal *journal, 156 ocfs2_queue_recovery_completion(osb->journal, i, NULL, in ocfs2_queue_replay_slots() 298 struct ocfs2_journal *journal = NULL; in ocfs2_commit_cache() local 300 journal = osb->journal; in ocfs2_commit_cache() 303 down_write(&journal->j_trans_barrier); in ocfs2_commit_cache() 305 flushed = atomic_read(&journal->j_num_trans); in ocfs2_commit_cache() 308 up_write(&journal->j_trans_barrier); in ocfs2_commit_cache() 312 jbd2_journal_lock_updates(journal->j_journal); in ocfs2_commit_cache() 313 status = jbd2_journal_flush(journal->j_journal); in ocfs2_commit_cache() 314 jbd2_journal_unlock_updates(journal->j_journal); in ocfs2_commit_cache() [all …]
|
D | journal.h | 80 static inline void ocfs2_set_ci_lock_trans(struct ocfs2_journal *journal, in ocfs2_set_ci_lock_trans() argument 84 ci->ci_last_trans = journal->j_trans_id; in ocfs2_set_ci_lock_trans() 96 struct ocfs2_journal *journal = in ocfs2_ci_fully_checkpointed() local 97 OCFS2_SB(ocfs2_metadata_cache_get_super(ci))->journal; in ocfs2_ci_fully_checkpointed() 100 ret = time_after(journal->j_trans_id, ci->ci_last_trans); in ocfs2_ci_fully_checkpointed() 112 struct ocfs2_journal *journal = in ocfs2_ci_is_new() local 113 OCFS2_SB(ocfs2_metadata_cache_get_super(ci))->journal; in ocfs2_ci_is_new() 116 ret = !(time_after(journal->j_trans_id, ci->ci_created_trans)); in ocfs2_ci_is_new() 139 ci->ci_created_trans = osb->journal->j_trans_id; in ocfs2_ci_set_new() 172 int ocfs2_journal_init(struct ocfs2_journal *journal, [all …]
|
D | super.c | 290 "Journal", osb->journal->j_state, in ocfs2_osb_dump() 291 osb->journal->j_trans_id, in ocfs2_osb_dump() 292 atomic_read(&osb->journal->j_num_trans)); in ocfs2_osb_dump() 414 if (jbd2_journal_start_commit(osb->journal->j_journal, in ocfs2_sync_fs() 417 jbd2_log_wait_commit(osb->journal->j_journal, in ocfs2_sync_fs() 2002 jbd2_journal_check_used_features(osb->journal->j_journal, 0, 0, in ocfs2_journal_addressable() 2023 struct ocfs2_journal *journal; in ocfs2_initialize_super() local 2213 journal = kzalloc(sizeof(struct ocfs2_journal), GFP_KERNEL); in ocfs2_initialize_super() 2214 if (!journal) { in ocfs2_initialize_super() 2219 osb->journal = journal; in ocfs2_initialize_super() [all …]
|
/kernel/linux/linux-5.10/include/trace/events/ |
D | jbd2.h | 16 TP_PROTO(journal_t *journal, int result), 18 TP_ARGS(journal, result), 26 __entry->dev = journal->j_fs_dev->bd_dev; 36 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 38 TP_ARGS(journal, commit_transaction), 47 __entry->dev = journal->j_fs_dev->bd_dev; 59 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 61 TP_ARGS(journal, commit_transaction) 66 TP_PROTO(journal_t *journal, transaction_t *commit_transaction), 68 TP_ARGS(journal, commit_transaction) [all …]
|
/kernel/linux/linux-5.10/Documentation/filesystems/ext4/ |
D | journal.rst | 6 Introduced in ext3, the ext4 filesystem employs a journal to protect the 12 committed is also written to the journal. At some later point in time, 13 the journal code writes the transactions to their final locations on 16 crash during the second slow write, the journal can be replayed all the 18 gets written through the journal to the disk. The effect of this is to 23 through the journal. This means that file data blocks are /not/ 26 option to control journal behavior. If ``data=journal``, all data and 27 metadata are written to disk through the journal. This is slower but 29 disk before the metadata are written to disk through the journal. 33 mode works by logging metadata blocks to the journal. In fast commit [all …]
|
/kernel/linux/linux-5.10/Documentation/admin-guide/device-mapper/ |
D | dm-integrity.rst | 12 To guarantee write atomicity, the dm-integrity target uses journal, it 13 writes sector data and integrity tags into a journal, commits the journal 29 instead of a journal. If a bit in the bitmap is 1, the corresponding 32 is faster than the journal mode, because we don't have to write the data 66 D - direct writes (without journal) 73 journal and atomicity is guaranteed. In case of crash, 81 R - recovery mode - in this mode, journal is not replayed, 92 The size of journal, this argument is used only if formatting the 114 The journal watermark in percents. When the size of the journal 115 exceeds this watermark, the thread that flushes the journal will [all …]
|
/kernel/linux/linux-5.10/Documentation/filesystems/ |
D | journalling.rst | 12 how you decide to allocate the physical media on which the journal 15 for journal stored on a raw device (in a continuous range of blocks). A 21 journal file. The journalling layer expects the space for the journal 23 When loading the journal you must call jbd2_journal_load() to process 24 journal contents. If the client file system detects the journal contents 26 may call jbd2_journal_wipe() to clear the journal contents before 31 transactions in the journal and similarly jbd2_journal_load() will 38 You still need to actually journal your filesystem changes, this is done 40 the modification of each of the buffers with calls to the journal layer, 70 jbd2_journal_destroy() to clean up your in-core journal object. [all …]
|
D | gfs2-uevents.rst | 24 with no journal assigned), and read-only (with journal assigned) status 45 of journal recovery for one of the filesystems journals. It has 46 two environment variables, JID= which specifies the journal id which 49 for every journal recovered, whether it is during the initial mount 50 process or as the result of gfs_controld requesting a specific journal 100 If a journal is in use by the filesystem (journals are not 102 numeric journal id in all GFS2 uevents.
|
D | ubifs-authentication.rst | 134 certain conditions are met (eg. ``fsync(2)``). The journal is used to record 136 of the index. During mount, the journal is read from the flash and replayed 139 UBIFS reserves a bunch of LEBs just for the journal called *log area*. The 144 written on every journal update. Each reference node points to the position of 146 journal entry. These nodes are called *buds* and describe the actual filesystem 149 The log area is maintained as a ring. Whenever the journal is almost full, 155 When writing a journal entry, UBIFS first ensures that enough space is 161 done for the last referenced LEB of the journal. Only this can become corrupt 226 versions of the index tree or the journal, but instead marks them as obsolete 249 - The journal which also contains file contents and metadata by recording changes [all …]
|
/kernel/linux/linux-5.10/fs/ext4/ |
D | ext4_jbd2.c | 66 journal_t *journal; in ext4_journal_check_start() local 76 journal = EXT4_SB(sb)->s_journal; in ext4_journal_check_start() 82 if (journal && is_journal_aborted(journal)) { in ext4_journal_check_start() 83 ext4_abort(sb, -journal->j_errno, "Detected aborted journal"); in ext4_journal_check_start() 93 journal_t *journal; in __ext4_journal_start_sb() local 102 journal = EXT4_SB(sb)->s_journal; in __ext4_journal_start_sb() 103 if (!journal || (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)) in __ext4_journal_start_sb() 105 return jbd2__journal_start(journal, blocks, rsv_blocks, revoke_creds, in __ext4_journal_start_sb()
|
D | fsync.c | 108 journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; in ext4_fsync_journal() local 111 if (journal->j_flags & JBD2_BARRIER && in ext4_fsync_journal() 112 !jbd2_trans_will_send_data_barrier(journal, commit_tid)) in ext4_fsync_journal() 115 return ext4_fc_commit(journal, commit_tid); in ext4_fsync_journal()
|
D | fast_commit.c | 863 static int ext4_fc_submit_inode_data_all(journal_t *journal) in ext4_fc_submit_inode_data_all() argument 865 struct super_block *sb = (struct super_block *)(journal->j_private); in ext4_fc_submit_inode_data_all() 900 static int ext4_fc_wait_inode_data_all(journal_t *journal) in ext4_fc_wait_inode_data_all() argument 902 struct super_block *sb = (struct super_block *)(journal->j_private); in ext4_fc_wait_inode_data_all() 914 ret = jbd2_wait_inode_data(journal, pos->jinode); in ext4_fc_wait_inode_data_all() 925 static int ext4_fc_commit_dentry_updates(journal_t *journal, u32 *crc) in ext4_fc_commit_dentry_updates() argument 929 struct super_block *sb = (struct super_block *)(journal->j_private); in ext4_fc_commit_dentry_updates() 1004 static int ext4_fc_perform_commit(journal_t *journal) in ext4_fc_perform_commit() argument 1006 struct super_block *sb = (struct super_block *)(journal->j_private); in ext4_fc_perform_commit() 1016 ret = ext4_fc_submit_inode_data_all(journal); in ext4_fc_perform_commit() [all …]
|
D | super.c | 442 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn) in ext4_journal_commit_callback() argument 444 struct super_block *sb = journal->j_private; in ext4_journal_commit_callback() 446 int error = is_journal_aborted(journal); in ext4_journal_commit_callback() 643 journal_t *journal = EXT4_SB(sb)->s_journal; in ext4_handle_error() local 652 if (journal) in ext4_handle_error() 653 jbd2_journal_abort(journal, -EIO); in ext4_handle_error() 664 if (continue_fs && journal) in ext4_handle_error() 695 journal_t *journal = sbi->s_journal; in flush_stashed_error_work() local 706 if (!sb_rdonly(sbi->s_sb) && journal) { in flush_stashed_error_work() 708 handle = jbd2_journal_start(journal, 1); in flush_stashed_error_work() [all …]
|
D | inode.c | 205 journal_t *journal = EXT4_SB(inode->i_sb)->s_journal; in ext4_evict_inode() local 208 jbd2_complete_transaction(journal, commit_tid); in ext4_evict_inode() 3145 journal_t *journal; in ext4_bmap() local 3185 journal = EXT4_JOURNAL(inode); in ext4_bmap() 3186 jbd2_journal_lock_updates(journal); in ext4_bmap() 3187 err = jbd2_journal_flush(journal); in ext4_bmap() 3188 jbd2_journal_unlock_updates(journal); in ext4_bmap() 3239 journal_t *journal = EXT4_JOURNAL(page->mapping->host); in __ext4_journalled_invalidatepage() local 3249 return jbd2_journal_invalidatepage(journal, page, offset, length); in __ext4_journalled_invalidatepage() 3262 journal_t *journal = EXT4_JOURNAL(page->mapping->host); in ext4_releasepage() local [all …]
|
/kernel/linux/linux-5.10/Documentation/admin-guide/ |
D | ext4.rst | 66 the filesystem with a large journal can also be helpful for 84 * journal checksumming for robustness, performance 145 Mount filesystem read only. Note that ext4 will replay the journal (and 150 Enable checksumming of the journal transactions. This will allow the 161 When the external journal device's major/minor numbers have changed, 162 these options allow the user to specify the new journal location. The 163 journal device is identified through either its new major/minor numbers 167 Don't load the journal on mounting. Note that if the filesystem was 168 not unmounted cleanly, skipping the journal replay will lead to the 172 data=journal [all …]
|