summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Husted <sigstop@gmail.com>2019-10-04 16:25:50 -0700
committerKent Overstreet <kent.overstreet@gmail.com>2019-11-03 23:17:43 -0500
commitbf7574260c586e3102a69916c3061fa5da2fcb2d (patch)
treea702ba528891d6fa01b20bdd4c826f61a7bd14d3
parentff4d082246ed542c28c90f3f30b9b964d67591d3 (diff)
Add better valgrind support for journal write buffers.
-rw-r--r--include/linux/bug.h3
-rw-r--r--libbcachefs/journal_io.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/bug.h b/include/linux/bug.h
index a64a309c..eb53f39c 100644
--- a/include/linux/bug.h
+++ b/include/linux/bug.h
@@ -3,6 +3,7 @@
#include <assert.h>
#include <linux/compiler.h>
+#include <valgrind/memcheck.h>
#define BUILD_BUG_ON_NOT_POWER_OF_2(n) \
BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))
@@ -52,4 +53,6 @@
__ret_warn_on; \
})
+#define DEBUG_MEMORY_FREED(p, len) VALGRIND_MAKE_MEM_UNDEFINED(p, len)
+
#endif /* __TOOLS_LINUX_BUG_H */
diff --git a/libbcachefs/journal_io.c b/libbcachefs/journal_io.c
index 387377da..a6a4dda5 100644
--- a/libbcachefs/journal_io.c
+++ b/libbcachefs/journal_io.c
@@ -934,6 +934,8 @@ out:
/* also must come before signalling write completion: */
closure_debug_destroy(cl);
+ DEBUG_MEMORY_FREED(w->data, w->buf_size);
+
BUG_ON(!j->reservations.prev_buf_unwritten);
atomic64_sub(((union journal_res_state) { .prev_buf_unwritten = 1 }).v,
&j->reservations.counter);