aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace
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 /include/trace
parent0c9169ccad4aed233fdd49e95da4eada2536a06d (diff)
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>
Diffstat (limited to 'include/trace')
-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 6a1fcff95f7c..fbdfa3a6bbd8 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -432,7 +432,6 @@ TRACE_EVENT(ext4_mb_release_group_pa,
432 432
433 TP_STRUCT__entry( 433 TP_STRUCT__entry(
434 __field( dev_t, dev ) 434 __field( dev_t, dev )
435 __field( ino_t, ino )
436 __field( __u64, pa_pstart ) 435 __field( __u64, pa_pstart )
437 __field( __u32, pa_len ) 436 __field( __u32, pa_len )
438 437
@@ -440,8 +439,6 @@ TRACE_EVENT(ext4_mb_release_group_pa,
440 439
441 TP_fast_assign( 440 TP_fast_assign(
442 __entry->dev = sb->s_dev; 441 __entry->dev = sb->s_dev;
443 __entry->ino = (ac && ac->ac_inode) ?
444 ac->ac_inode->i_ino : 0;
445 __entry->pa_pstart = pa->pa_pstart; 442 __entry->pa_pstart = pa->pa_pstart;
446 __entry->pa_len = pa->pa_len; 443 __entry->pa_len = pa->pa_len;
447 ), 444 ),