Home
last modified time | relevance | path

Searched refs:journal (Results 1 – 25 of 82) sorted by relevance

1234

/Linux-v6.6/fs/jbd2/
Djournal.c137 journal_t *journal = from_timer(journal, t, j_commit_timer); in commit_timeout() local
139 wake_up_process(journal->j_task); in commit_timeout()
162 journal_t *journal = arg; in kjournald2() local
169 timer_setup(&journal->j_commit_timer, commit_timeout, 0); in kjournald2()
174 journal->j_task = current; in kjournald2()
175 wake_up(&journal->j_wait_done_commit); in kjournald2()
188 write_lock(&journal->j_state_lock); in kjournald2()
191 if (journal->j_flags & JBD2_UNMOUNT) in kjournald2()
195 journal->j_commit_sequence, journal->j_commit_request); in kjournald2()
197 if (journal->j_commit_sequence != journal->j_commit_request) { in kjournald2()
[all …]
Dcheckpoint.c49 void __jbd2_log_wait_for_space(journal_t *journal) in __jbd2_log_wait_for_space() argument
50 __acquires(&journal->j_state_lock) in __jbd2_log_wait_for_space()
51 __releases(&journal->j_state_lock) in __jbd2_log_wait_for_space()
56 nblocks = journal->j_max_transaction_buffers; in __jbd2_log_wait_for_space()
57 while (jbd2_log_space_left(journal) < nblocks) { in __jbd2_log_wait_for_space()
58 write_unlock(&journal->j_state_lock); in __jbd2_log_wait_for_space()
59 mutex_lock_io(&journal->j_checkpoint_mutex); in __jbd2_log_wait_for_space()
72 write_lock(&journal->j_state_lock); in __jbd2_log_wait_for_space()
73 if (journal->j_flags & JBD2_ABORT) { in __jbd2_log_wait_for_space()
74 mutex_unlock(&journal->j_checkpoint_mutex); in __jbd2_log_wait_for_space()
[all …]
Dcommit.c114 static int journal_submit_commit_record(journal_t *journal, in journal_submit_commit_record() argument
126 if (is_journal_aborted(journal)) in journal_submit_commit_record()
139 if (jbd2_has_feature_checksum(journal)) { in journal_submit_commit_record()
144 jbd2_commit_block_csum_set(journal, bh); in journal_submit_commit_record()
152 if (journal->j_flags & JBD2_BARRIER && in journal_submit_commit_record()
153 !jbd2_has_feature_async_commit(journal)) in journal_submit_commit_record()
165 static int journal_wait_on_commit_record(journal_t *journal, in journal_wait_on_commit_record() argument
181 int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode) in jbd2_submit_inode_data() argument
187 return journal->j_submit_inode_data_buffers(jinode); in jbd2_submit_inode_data()
192 int jbd2_wait_inode_data(journal_t *journal, struct jbd2_inode *jinode) in jbd2_wait_inode_data() argument
[all …]
Dtransaction.c68 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()
112 jbd2_descriptor_blocks_per_trans(journal) + in jbd2_get_transaction()
[all …]
Drevoke.c131 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 …]
Drecovery.c39 static int do_one_pass(journal_t *journal,
67 static int do_readahead(journal_t *journal, unsigned int start) in do_readahead() argument
77 max = start + (128 * 1024 / journal->j_blocksize); in do_readahead()
78 if (max > journal->j_total_len) in do_readahead()
79 max = journal->j_total_len; in do_readahead()
87 err = jbd2_journal_bmap(journal, next, &blocknr); in do_readahead()
95 bh = __getblk(journal->j_dev, blocknr, journal->j_blocksize); in do_readahead()
129 static int jread(struct buffer_head **bhp, journal_t *journal, in jread() argument
138 if (offset >= journal->j_total_len) { in jread()
143 err = jbd2_journal_bmap(journal, offset, &blocknr); in jread()
[all …]
/Linux-v6.6/fs/reiserfs/
Djournal.c94 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 …]
/Linux-v6.6/drivers/md/bcache/
Djournal.c38 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()
183 struct journal_device *ja = &ca->journal; in bch_journal_read()
285 c->journal.seq = list_entry(list->prev, in bch_journal_read()
298 struct journal *j = &c->journal; in bch_journal_mark()
409 void bch_journal_space_reserve(struct journal *j) in bch_journal_space_reserve()
424 if (c->journal.btree_flushing) in btree_flush_write()
427 spin_lock(&c->journal.flush_write_lock); in btree_flush_write()
428 if (c->journal.btree_flushing) { in btree_flush_write()
429 spin_unlock(&c->journal.flush_write_lock); in btree_flush_write()
[all …]
Djournal.h104 struct journal { struct
163 (fifo_idx(&(c)->journal.pin, (l)) > fifo_idx(&(c)->journal.pin, (r)))
178 void bch_journal_next(struct journal *j);
186 void bch_journal_space_reserve(struct journal *j);
/Linux-v6.6/fs/ocfs2/
Djournal.c62 static void ocfs2_queue_recovery_completion(struct ocfs2_journal *journal,
155 ocfs2_queue_recovery_completion(osb->journal, i, NULL, in ocfs2_queue_replay_slots()
294 struct ocfs2_journal *journal = NULL; in ocfs2_commit_cache() local
296 journal = osb->journal; in ocfs2_commit_cache()
299 down_write(&journal->j_trans_barrier); in ocfs2_commit_cache()
301 flushed = atomic_read(&journal->j_num_trans); in ocfs2_commit_cache()
304 up_write(&journal->j_trans_barrier); in ocfs2_commit_cache()
308 jbd2_journal_lock_updates(journal->j_journal); in ocfs2_commit_cache()
309 status = jbd2_journal_flush(journal->j_journal, 0); in ocfs2_commit_cache()
310 jbd2_journal_unlock_updates(journal->j_journal); in ocfs2_commit_cache()
[all …]
Djournal.h78 static inline void ocfs2_set_ci_lock_trans(struct ocfs2_journal *journal, in ocfs2_set_ci_lock_trans() argument
82 ci->ci_last_trans = journal->j_trans_id; in ocfs2_set_ci_lock_trans()
94 struct ocfs2_journal *journal = in ocfs2_ci_fully_checkpointed() local
95 OCFS2_SB(ocfs2_metadata_cache_get_super(ci))->journal; in ocfs2_ci_fully_checkpointed()
98 ret = time_after(journal->j_trans_id, ci->ci_last_trans); in ocfs2_ci_fully_checkpointed()
110 struct ocfs2_journal *journal = in ocfs2_ci_is_new() local
111 OCFS2_SB(ocfs2_metadata_cache_get_super(ci))->journal; in ocfs2_ci_is_new()
114 ret = !(time_after(journal->j_trans_id, ci->ci_created_trans)); in ocfs2_ci_is_new()
137 ci->ci_created_trans = osb->journal->j_trans_id; in ocfs2_ci_set_new()
175 int ocfs2_journal_wipe(struct ocfs2_journal *journal,
[all …]
/Linux-v6.6/include/linux/
Djbd2.h1269 void (*j_fc_cleanup_callback)(struct journal_s *journal, int full, tid_t tid);
1282 int (*j_fc_replay_callback)(struct journal_s *journal,
1293 int (*j_bmap)(struct journal_s *journal, sector_t *block);
1429 int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid,
1431 int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
1432 void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
1438 void __jbd2_journal_clean_checkpoint_list(journal_t *journal, bool destroy);
1439 unsigned long jbd2_journal_shrink_checkpoint_list(journal_t *journal, unsigned long *nr_to_scan);
1442 void jbd2_journal_destroy_checkpoint(journal_t *journal);
1529 bool jbd2_journal_try_to_free_buffers(journal_t *journal, struct folio *folio);
[all …]
/Linux-v6.6/include/trace/events/
Djbd2.h16 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 …]
/Linux-v6.6/Documentation/filesystems/ext4/
Djournal.rst6 Introduced in ext3, the ext4 filesystem employs a journal to protect the
8 to 10,240,000 file system blocks (see man mke2fs(8) for more details on journal
12 cache, a record of the data being committed is also written to the journal. At
13 some later point in time, the journal code writes the transactions to their
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.
[all …]
Dsuper.rst218 - UUID of journal superblock
222 - inode number of journal file.
226 - Device number of journal file, if the external journal feature flag is
267 - Backup copy of the journal inode's ``i_block[]`` array in the first 15
582 - Has a journal (COMPAT_HAS_JOURNAL).
606 present in the journal. If fast commit blocks are present in
607 the journal, JBD2 incompat feature
635 - Filesystem has a separate journal device (INCOMPAT_JOURNAL_DEV).
775 - All data and metadata are committed to the journal.
779 journal. (EXT4_DEFM_JMODE_ORDERED)
/Linux-v6.6/Documentation/admin-guide/device-mapper/
Ddm-integrity.rst12 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
75 D - direct writes (without journal)
82 journal and atomicity is guaranteed. In case of crash,
90 R - recovery mode - in this mode, journal is not replayed,
101 The size of journal, this argument is used only if formatting the
119 The journal watermark in percents. When the size of the journal
120 exceeds this watermark, the thread that flushes the journal will
[all …]
Ddm-raid.rst202 This option adds a journal device to raid4/5/6 raid sets and
205 The journal device is used as writethrough thus causing writes to
207 Takeover/reshape is not possible with a raid4/5/6 journal device;
213 If 'writeback' is selected the journal device has to be resilient
321 <journal_char> - 'A' - active write-through journal device.
322 - 'a' - active write-back journal device.
323 - 'D' - dead journal device.
324 - '-' - no journal device.
406 1.10.0 Add support for raid4/5/6 journal device
410 1.11.1 Add raid4/5/6 journal write-back support via journal_mode option
/Linux-v6.6/Documentation/filesystems/
Djournalling.rst12 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 …]
Dgfs2-uevents.rst24 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.
Dubifs-authentication.rst134 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 …]
/Linux-v6.6/fs/ext4/
Dext4_jbd2.c66 journal_t *journal; in ext4_journal_check_start() local
77 journal = EXT4_SB(sb)->s_journal; in ext4_journal_check_start()
83 if (journal && is_journal_aborted(journal)) { in ext4_journal_check_start()
84 ext4_abort(sb, -journal->j_errno, "Detected aborted journal"); in ext4_journal_check_start()
95 journal_t *journal; in __ext4_journal_start_sb() local
109 journal = EXT4_SB(sb)->s_journal; in __ext4_journal_start_sb()
110 if (!journal || (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)) in __ext4_journal_start_sb()
112 return jbd2__journal_start(journal, blocks, rsv_blocks, revoke_creds, in __ext4_journal_start_sb()
Dfast_commit.c961 static int ext4_fc_submit_inode_data_all(journal_t *journal) in ext4_fc_submit_inode_data_all() argument
963 struct super_block *sb = journal->j_private; in ext4_fc_submit_inode_data_all()
984 ret = jbd2_submit_inode_data(journal, ei->jinode); in ext4_fc_submit_inode_data_all()
995 static int ext4_fc_wait_inode_data_all(journal_t *journal) in ext4_fc_wait_inode_data_all() argument
997 struct super_block *sb = journal->j_private; in ext4_fc_wait_inode_data_all()
1009 ret = jbd2_wait_inode_data(journal, pos->jinode); in ext4_fc_wait_inode_data_all()
1020 static int ext4_fc_commit_dentry_updates(journal_t *journal, u32 *crc) in ext4_fc_commit_dentry_updates() argument
1024 struct super_block *sb = journal->j_private; in ext4_fc_commit_dentry_updates()
1084 static int ext4_fc_perform_commit(journal_t *journal) in ext4_fc_perform_commit() argument
1086 struct super_block *sb = journal->j_private; in ext4_fc_perform_commit()
[all …]
Dfsync.c101 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()
Dsuper.c456 journal_t *journal = sbi->s_journal; in ext4_maybe_update_superblock() local
463 !journal || (journal->j_flags & JBD2_UNMOUNT)) in ext4_maybe_update_superblock()
504 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn) in ext4_journal_commit_callback() argument
506 struct super_block *sb = journal->j_private; in ext4_journal_commit_callback()
508 int error = is_journal_aborted(journal); in ext4_journal_commit_callback()
705 journal_t *journal = EXT4_SB(sb)->s_journal; in ext4_handle_error() local
714 if (journal) in ext4_handle_error()
715 jbd2_journal_abort(journal, -EIO); in ext4_handle_error()
726 if (continue_fs && journal) in ext4_handle_error()
758 journal_t *journal = sbi->s_journal; in update_super_work() local
[all …]
/Linux-v6.6/Documentation/admin-guide/
Dext4.rst66 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 …]

1234