diff options
Diffstat (limited to 'meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch')
-rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch deleted file mode 100644 index 7edffee542..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch +++ /dev/null | |||
@@ -1,149 +0,0 @@ | |||
1 | From cb9f1a821bcf55cecf3813195fd6d4eff8070927 Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Jeanson <mjeanson@efficios.com> | ||
3 | Date: Mon, 5 Nov 2018 11:35:54 -0500 | ||
4 | Subject: [PATCH 3/9] Fix: ext4: adjust reserved cluster count when removing | ||
5 | extents (v4.20) | ||
6 | |||
7 | See upstream commit : | ||
8 | |||
9 | commit 9fe671496b6c286f9033aedfc1718d67721da0ae | ||
10 | Author: Eric Whitney <enwlinux@gmail.com> | ||
11 | Date: Mon Oct 1 14:25:08 2018 -0400 | ||
12 | |||
13 | ext4: adjust reserved cluster count when removing extents | ||
14 | |||
15 | Modify ext4_ext_remove_space() and the code it calls to correct the | ||
16 | reserved cluster count for pending reservations (delayed allocated | ||
17 | clusters shared with allocated blocks) when a block range is removed | ||
18 | from the extent tree. Pending reservations may be found for the clusters | ||
19 | at the ends of written or unwritten extents when a block range is removed. | ||
20 | If a physical cluster at the end of an extent is freed, it's necessary | ||
21 | to increment the reserved cluster count to maintain correct accounting | ||
22 | if the corresponding logical cluster is shared with at least one | ||
23 | delayed and unwritten extent as found in the extents status tree. | ||
24 | |||
25 | Add a new function, ext4_rereserve_cluster(), to reapply a reservation | ||
26 | on a delayed allocated cluster sharing blocks with a freed allocated | ||
27 | cluster. To avoid ENOSPC on reservation, a flag is applied to | ||
28 | ext4_free_blocks() to briefly defer updating the freeclusters counter | ||
29 | when an allocated cluster is freed. This prevents another thread | ||
30 | from allocating the freed block before the reservation can be reapplied. | ||
31 | |||
32 | Redefine the partial cluster object as a struct to carry more state | ||
33 | information and to clarify the code using it. | ||
34 | |||
35 | Adjust the conditional code structure in ext4_ext_remove_space to | ||
36 | reduce the indentation level in the main body of the code to improve | ||
37 | readability. | ||
38 | |||
39 | Signed-off-by: Michael Jeanson <mjeanson@efficios.com> | ||
40 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
41 | |||
42 | Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/cb9f1a821bcf55cecf3813195fd6d4eff8070927 | ||
43 | |||
44 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
45 | |||
46 | --- | ||
47 | instrumentation/events/lttng-module/ext4.h | 72 +++++++++++++++++++++- | ||
48 | 1 file changed, 69 insertions(+), 3 deletions(-) | ||
49 | |||
50 | diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h | ||
51 | index fe6f802..83a80ba 100644 | ||
52 | --- a/instrumentation/events/lttng-module/ext4.h | ||
53 | +++ b/instrumentation/events/lttng-module/ext4.h | ||
54 | @@ -1602,7 +1602,30 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent, | ||
55 | ) | ||
56 | ) | ||
57 | |||
58 | -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
59 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0)) | ||
60 | + | ||
61 | +LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks, | ||
62 | + TP_PROTO(struct inode *inode, struct ext4_extent *ex, | ||
63 | + ext4_lblk_t from, ext4_fsblk_t to, | ||
64 | + struct partial_cluster *pc), | ||
65 | + | ||
66 | + TP_ARGS(inode, ex, from, to, pc), | ||
67 | + | ||
68 | + TP_FIELDS( | ||
69 | + ctf_integer(dev_t, dev, inode->i_sb->s_dev) | ||
70 | + ctf_integer(ino_t, ino, inode->i_ino) | ||
71 | + ctf_integer(ext4_lblk_t, from, from) | ||
72 | + ctf_integer(ext4_lblk_t, to, to) | ||
73 | + ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex)) | ||
74 | + ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block)) | ||
75 | + ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex)) | ||
76 | + ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu) | ||
77 | + ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk) | ||
78 | + ctf_integer(int, pc_state, pc->state) | ||
79 | + ) | ||
80 | +) | ||
81 | + | ||
82 | +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
83 | |||
84 | LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks, | ||
85 | TP_PROTO(struct inode *inode, struct ext4_extent *ex, | ||
86 | @@ -1646,7 +1669,29 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks, | ||
87 | |||
88 | #endif | ||
89 | |||
90 | -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
91 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0)) | ||
92 | + | ||
93 | +LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf, | ||
94 | + TP_PROTO(struct inode *inode, ext4_lblk_t start, | ||
95 | + struct ext4_extent *ex, | ||
96 | + struct partial_cluster *pc), | ||
97 | + | ||
98 | + TP_ARGS(inode, start, ex, pc), | ||
99 | + | ||
100 | + TP_FIELDS( | ||
101 | + ctf_integer(dev_t, dev, inode->i_sb->s_dev) | ||
102 | + ctf_integer(ino_t, ino, inode->i_ino) | ||
103 | + ctf_integer(ext4_lblk_t, start, start) | ||
104 | + ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block)) | ||
105 | + ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex)) | ||
106 | + ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex)) | ||
107 | + ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu) | ||
108 | + ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk) | ||
109 | + ctf_integer(int, pc_state, pc->state) | ||
110 | + ) | ||
111 | +) | ||
112 | + | ||
113 | +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
114 | |||
115 | LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf, | ||
116 | TP_PROTO(struct inode *inode, ext4_lblk_t start, | ||
117 | @@ -1733,7 +1778,28 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space, | ||
118 | |||
119 | #endif | ||
120 | |||
121 | -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
122 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0)) | ||
123 | + | ||
124 | +LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done, | ||
125 | + TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end, | ||
126 | + int depth, struct partial_cluster *pc, __le16 eh_entries), | ||
127 | + | ||
128 | + TP_ARGS(inode, start, end, depth, pc, eh_entries), | ||
129 | + | ||
130 | + TP_FIELDS( | ||
131 | + ctf_integer(dev_t, dev, inode->i_sb->s_dev) | ||
132 | + ctf_integer(ino_t, ino, inode->i_ino) | ||
133 | + ctf_integer(ext4_lblk_t, start, start) | ||
134 | + ctf_integer(ext4_lblk_t, end, end) | ||
135 | + ctf_integer(int, depth, depth) | ||
136 | + ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries)) | ||
137 | + ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu) | ||
138 | + ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk) | ||
139 | + ctf_integer(int, pc_state, pc->state) | ||
140 | + ) | ||
141 | +) | ||
142 | + | ||
143 | +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) | ||
144 | |||
145 | LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done, | ||
146 | TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end, | ||
147 | -- | ||
148 | 2.19.1 | ||
149 | |||