Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
"This merge window saw the the following new featuers added to ext4:
- Direct I/O via iomap (required the iomap-for-next branch from
Darrick as a prereq).
- Support for using dioread-nolock where the block size < page size.
- Support for encryption for file systems where the block size < page
size.
- Rework of journal credits handling so a revoke-heavy workload will
not cause the journal to run out of space.
- Replace bit-spinlocks with spinlocks in jbd2
Also included were some bug fixes and cleanups, mostly to clean up
corner cases from fuzzed file systems and error path handling"
* tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (59 commits)
ext4: work around deleting a file with i_nlink == 0 safely
ext4: add more paranoia checking in ext4_expand_extra_isize handling
jbd2: make jbd2_handle_buffer_credits() handle reserved handles
ext4: fix a bug in ext4_wait_for_tail_page_commit
ext4: bio_alloc with __GFP_DIRECT_RECLAIM never fails
ext4: code cleanup for get_next_id
ext4: fix leak of quota reservations
ext4: remove unused variable warning in parse_options()
ext4: Enable encryption for subpage-sized blocks
fs/buffer.c: support fscrypt in block_read_full_page()
ext4: Add error handling for io_end_vec struct allocation
jbd2: Fine tune estimate of necessary descriptor blocks
jbd2: Provide trace event for handle restarts
ext4: Reserve revoke credits for freed blocks
jbd2: Make credit checking more strict
jbd2: Rename h_buffer_credits to h_total_credits
jbd2: Reserve space for revoke descriptor blocks
jbd2: Drop jbd2_space_needed()
jbd2: Account descriptor blocks into t_outstanding_credits
jbd2: Factor out common parts of stopping and restarting a handle
...
This commit is contained in:
@@ -1746,15 +1746,16 @@ TRACE_EVENT(ext4_load_inode,
|
||||
|
||||
TRACE_EVENT(ext4_journal_start,
|
||||
TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
|
||||
unsigned long IP),
|
||||
int revoke_creds, unsigned long IP),
|
||||
|
||||
TP_ARGS(sb, blocks, rsv_blocks, IP),
|
||||
TP_ARGS(sb, blocks, rsv_blocks, revoke_creds, IP),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
__field(unsigned long, ip )
|
||||
__field( int, blocks )
|
||||
__field( int, rsv_blocks )
|
||||
__field( int, revoke_creds )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
@@ -1762,11 +1763,13 @@ TRACE_EVENT(ext4_journal_start,
|
||||
__entry->ip = IP;
|
||||
__entry->blocks = blocks;
|
||||
__entry->rsv_blocks = rsv_blocks;
|
||||
__entry->revoke_creds = revoke_creds;
|
||||
),
|
||||
|
||||
TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pS",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->blocks, __entry->rsv_blocks, (void *)__entry->ip)
|
||||
TP_printk("dev %d,%d blocks %d, rsv_blocks %d, revoke_creds %d, "
|
||||
"caller %pS", MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->blocks, __entry->rsv_blocks, __entry->revoke_creds,
|
||||
(void *)__entry->ip)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_journal_start_reserved,
|
||||
|
||||
@@ -133,7 +133,7 @@ TRACE_EVENT(jbd2_submit_inode_data,
|
||||
(unsigned long) __entry->ino)
|
||||
);
|
||||
|
||||
TRACE_EVENT(jbd2_handle_start,
|
||||
DECLARE_EVENT_CLASS(jbd2_handle_start_class,
|
||||
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
|
||||
unsigned int line_no, int requested_blocks),
|
||||
|
||||
@@ -161,6 +161,20 @@ TRACE_EVENT(jbd2_handle_start,
|
||||
__entry->type, __entry->line_no, __entry->requested_blocks)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(jbd2_handle_start_class, jbd2_handle_start,
|
||||
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
|
||||
unsigned int line_no, int requested_blocks),
|
||||
|
||||
TP_ARGS(dev, tid, type, line_no, requested_blocks)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(jbd2_handle_start_class, jbd2_handle_restart,
|
||||
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
|
||||
unsigned int line_no, int requested_blocks),
|
||||
|
||||
TP_ARGS(dev, tid, type, line_no, requested_blocks)
|
||||
);
|
||||
|
||||
TRACE_EVENT(jbd2_handle_extend,
|
||||
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
|
||||
unsigned int line_no, int buffer_credits,
|
||||
|
||||
Reference in New Issue
Block a user