summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2010-10-27 21:30:07 -0400
committerTheodore Ts'o <tytso@mit.edu>2010-10-27 21:30:07 -0400
commit4d5476164a052e80d4ef430e368e76dbde96801f (patch)
treec4949f899392c99896e3e81250c5f667a5ae0ba3
parent0c9169ccad4aed233fdd49e95da4eada2536a06d (diff)
downloadlinux-3.10-4d5476164a052e80d4ef430e368e76dbde96801f.tar.gz
linux-3.10-4d5476164a052e80d4ef430e368e76dbde96801f.tar.bz2
linux-3.10-4d5476164a052e80d4ef430e368e76dbde96801f.zip
ext4: fix oops in trace_ext4_mb_release_group_pa
Our QA reported an oops in the ext4_mb_release_group_pa tracing, and Josef Bacik pointed out that it was because we may have a non-null but uninitialized ac_inode in the allocation context. I can reproduce it when running xfstests with ext4 tracepoints on, on a CONFIG_SLAB_DEBUG kernel. We call trace_ext4_mb_release_group_pa from 2 places, ext4_mb_discard_group_preallocations and ext4_mb_discard_lg_preallocations In both cases we allocate an ac as a container just for tracing (!) and never fill in the ac_inode. There's no reason to be assigning, testing, or printing it as far as I can see, so just remove it from the tracepoint. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Josef Bacik <josef@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r--include/trace/events/ext4.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index 6a1fcff95f7..fbdfa3a6bbd 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -432,7 +432,6 @@ TRACE_EVENT(ext4_mb_release_group_pa,
TP_STRUCT__entry(
__field( dev_t, dev )
- __field( ino_t, ino )
__field( __u64, pa_pstart )
__field( __u32, pa_len )
@@ -440,8 +439,6 @@ TRACE_EVENT(ext4_mb_release_group_pa,
TP_fast_assign(
__entry->dev = sb->s_dev;
- __entry->ino = (ac && ac->ac_inode) ?
- ac->ac_inode->i_ino : 0;
__entry->pa_pstart = pa->pa_pstart;
__entry->pa_len = pa->pa_len;
),