blob: fb00a44b31ea50449bf2d92c0e56c90e149dfde4 [file] [log] [blame]
Andrew Geisslerc723b722021-01-08 16:14:09 -06001From a28235f8ffa3c961640a835686dddb5ca600dfaf Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Mon, 26 Oct 2020 17:03:23 -0400
4Subject: [PATCH 10/19] fix: ext4: fast commit recovery path (v5.10)
5
6See upstream commit :
7
8 commit 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2
9 Author: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
10 Date: Thu Oct 15 13:37:59 2020 -0700
11
12 ext4: fast commit recovery path
13
14 This patch adds fast commit recovery path support for Ext4 file
15 system. We add several helper functions that are similar in spirit to
16 e2fsprogs journal recovery path handlers. Example of such functions
17 include - a simple block allocator, idempotent block bitmap update
18 function etc. Using these routines and the fast commit log in the fast
19 commit area, the recovery path (ext4_fc_replay()) performs fast commit
20 log recovery.
21
22Upstream-Status: Backport
23
24Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
25Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
26Change-Id: Ia65cf44e108f2df0b458f0d335f33a8f18f50baa
27---
28 instrumentation/events/lttng-module/ext4.h | 41 ++++++++++++++++++++++
29 1 file changed, 41 insertions(+)
30
31diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
32index b172c8d9..6e74abad 100644
33--- a/instrumentation/events/lttng-module/ext4.h
34+++ b/instrumentation/events/lttng-module/ext4.h
35@@ -1274,6 +1274,18 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
36 )
37 )
38
39+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
40+LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
41+ TP_PROTO(struct super_block *sb, unsigned long ino),
42+
43+ TP_ARGS(sb, ino),
44+
45+ TP_FIELDS(
46+ ctf_integer(dev_t, dev, sb->s_dev)
47+ ctf_integer(ino_t, ino, ino)
48+ )
49+)
50+#else
51 LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
52 TP_PROTO(struct inode *inode),
53
54@@ -1284,6 +1296,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
55 ctf_integer(ino_t, ino, inode->i_ino)
56 )
57 )
58+#endif
59
60 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
61
62@@ -1895,6 +1908,34 @@ LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
63
64 #endif
65
66+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0))
67+LTTNG_TRACEPOINT_EVENT(ext4_fc_replay_scan,
68+ TP_PROTO(struct super_block *sb, int error, int off),
69+
70+ TP_ARGS(sb, error, off),
71+
72+ TP_FIELDS(
73+ ctf_integer(dev_t, dev, sb->s_dev)
74+ ctf_integer(int, error, error)
75+ ctf_integer(int, off, off)
76+ )
77+)
78+
79+LTTNG_TRACEPOINT_EVENT(ext4_fc_replay,
80+ TP_PROTO(struct super_block *sb, int tag, int ino, int priv1, int priv2),
81+
82+ TP_ARGS(sb, tag, ino, priv1, priv2),
83+
84+ TP_FIELDS(
85+ ctf_integer(dev_t, dev, sb->s_dev)
86+ ctf_integer(int, tag, tag)
87+ ctf_integer(int, ino, ino)
88+ ctf_integer(int, priv1, priv1)
89+ ctf_integer(int, priv2, priv2)
90+ )
91+)
92+#endif
93+
94 #endif /* LTTNG_TRACE_EXT4_H */
95
96 /* This part must be outside protection */
97--
982.19.1
99