fix: ext4: fast commit recovery path (v5.10)
authorMichael Jeanson <mjeanson@efficios.com>
Mon, 26 Oct 2020 21:03:23 +0000 (17:03 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 20 Nov 2020 20:43:52 +0000 (15:43 -0500)
See upstream commit :

  commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2
  Author: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
  Date:   Thu Oct 15 13:37:59 2020 -0700

    ext4: fast commit recovery path

    This patch adds fast commit recovery path support for Ext4 file
    system. We add several helper functions that are similar in spirit to
    e2fsprogs journal recovery path handlers. Example of such functions
    include - a simple block allocator, idempotent block bitmap update
    function etc. Using these routines and the fast commit log in the fast
    commit area, the recovery path (ext4_fc_replay()) performs fast commit
    log recovery.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia65cf44e108f2df0b458f0d335f33a8f18f50baa

instrumentation/events/lttng-module/ext4.h

index b172c8d95787e6478c4d08b9acc0e6a2b68ca337..6e74abadd1eb2684c4d01b30f2bd1c8f23ea20eb 100644 (file)
@@ -1274,6 +1274,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
        )
 )
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
+LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
+       TP_PROTO(struct super_block *sb, unsigned long ino),
+
+       TP_ARGS(sb, ino),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(ino_t, ino, ino)
+       )
+)
+#else
 LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
        TP_PROTO(struct inode *inode),
 
@@ -1284,6 +1296,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
                ctf_integer(ino_t, ino, inode->i_ino)
        )
 )
+#endif
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
 
@@ -1895,6 +1908,34 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
 
 #endif
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
+LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan,
+       TP_PROTO(struct super_block *sb, int error, int off),
+
+       TP_ARGS(sb, error, off),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, error, error)
+               ctf_integer(int, off, off)
+       )
+)
+
+LTTNG_TRACEPOINT_EVENT(ext4_fc_replay,
+       TP_PROTO(struct super_block *sb, int tag, int ino, int priv1, int priv2),
+
+       TP_ARGS(sb, tag, ino, priv1, priv2),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(int, tag, tag)
+               ctf_integer(int, ino, ino)
+               ctf_integer(int, priv1, priv1)
+               ctf_integer(int, priv2, priv2)
+       )
+)
+#endif
+
 #endif /* LTTNG_TRACE_EXT4_H */
 
 /* This part must be outside protection */
This page took 0.026672 seconds and 4 git commands to generate.