summaryrefslogtreecommitdiffstats
path: root/include/linux/jbd2.h
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2013-02-08 13:00:22 -0500
committerTheodore Ts'o <tytso@mit.edu>2013-02-08 13:00:22 -0500
commit343d9c283c9847da043fda3e76e3197f27b667dd (patch)
tree6c37b7cd1d9eeb711fa1aeffee1930e446c406f8 /include/linux/jbd2.h
parent078d5039a13dedbd2ed14153a6d764fd75baae07 (diff)
downloadlinux-stable-343d9c283c9847da043fda3e76e3197f27b667dd.tar.gz
linux-stable-343d9c283c9847da043fda3e76e3197f27b667dd.tar.bz2
linux-stable-343d9c283c9847da043fda3e76e3197f27b667dd.zip
jbd2: add tracepoints which provide per-handle statistics
Handles which stay open a long time are problematic when it comes time to close down a transaction so it can be committed. These tracepoints will help us determine which ones are the problematic ones, and to validate whether changes makes things better or worse. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r--include/linux/jbd2.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 24db7256a5ff..fa5fea17b619 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -400,6 +400,11 @@ struct jbd2_journal_handle
unsigned int h_sync: 1; /* sync-on-close */
unsigned int h_jdata: 1; /* force data journaling */
unsigned int h_aborted: 1; /* fatal error on handle */
+ unsigned int h_type: 8; /* for handle statistics */
+ unsigned int h_line_no: 16; /* for handle statistics */
+
+ unsigned long h_start_jiffies;
+ unsigned int h_requested_credits;
#ifdef CONFIG_DEBUG_LOCK_ALLOC
struct lockdep_map h_lockdep_map;
@@ -1071,7 +1076,8 @@ static inline handle_t *journal_current_handle(void)
*/
extern handle_t *jbd2_journal_start(journal_t *, int nblocks);
-extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask);
+extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask,
+ unsigned int type, unsigned int line_no);
extern int jbd2_journal_restart(handle_t *, int nblocks);
extern int jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask);
extern int jbd2_journal_extend (handle_t *, int nblocks);