Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[firefly-linux-kernel-4.4.55.git] / include / linux / jbd2.h
index e30b66346942a90a4c79cdc5a0362b3899db0521..50e5a5e6a71214535b8cce3d823862da4f7b930f 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef __KERNEL__
 #include "jfs_compat.h"
 #define JBD2_DEBUG
-#define jfs_debug jbd_debug
 #else
 
 #include <linux/types.h>
@@ -57,7 +56,7 @@
  * CONFIG_JBD2_DEBUG is on.
  */
 #define JBD2_EXPENSIVE_CHECKING
-extern u8 jbd2_journal_enable_debug;
+extern ushort jbd2_journal_enable_debug;
 
 #define jbd_debug(n, f, a...)                                          \
        do {                                                            \
@@ -397,35 +396,18 @@ struct jbd2_journal_handle
        int                     h_err;
 
        /* Flags [no locking] */
-       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_cowing:1;     /* COWing block to snapshot */
-
-       /* Number of buffers requested by user:
-        * (before adding the COW credits factor) */
-       unsigned int    h_base_credits:14;
-
-       /* Number of buffers the user is allowed to dirty:
-        * (counts only buffers dirtied when !h_cowing) */
-       unsigned int    h_user_credits:14;
+       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;
 #endif
-
-#ifdef CONFIG_JBD2_DEBUG
-       /* COW debugging counters: */
-       unsigned int h_cow_moved; /* blocks moved to snapshot */
-       unsigned int h_cow_copied; /* blocks copied to snapshot */
-       unsigned int h_cow_ok_jh; /* blocks already COWed during current
-                                    transaction */
-       unsigned int h_cow_ok_bitmap; /* blocks not set in COW bitmap */
-       unsigned int h_cow_ok_mapped;/* blocks already mapped in snapshot */
-       unsigned int h_cow_bitmaps; /* COW bitmaps created */
-       unsigned int h_cow_excluded; /* blocks set in exclude bitmap */
-#endif
 };
 
 
@@ -580,6 +562,11 @@ struct transaction_s
         */
        unsigned long           t_start;
 
+       /*
+        * When commit was requested
+        */
+       unsigned long           t_requested;
+
        /*
         * Checkpointing stats [j_checkpoint_sem]
         */
@@ -637,6 +624,7 @@ struct transaction_s
 
 struct transaction_run_stats_s {
        unsigned long           rs_wait;
+       unsigned long           rs_request_delay;
        unsigned long           rs_running;
        unsigned long           rs_locked;
        unsigned long           rs_flushing;
@@ -649,6 +637,7 @@ struct transaction_run_stats_s {
 
 struct transaction_stats_s {
        unsigned long           ts_tid;
+       unsigned long           ts_requested;
        struct transaction_run_stats_s run;
 };
 
@@ -1086,7 +1075,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);