[Top] [All Lists]

[PATCH RFC] fs: xfs: Fix xfs_trans_read_buf event tracing

To: david@xxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Subject: [PATCH RFC] fs: xfs: Fix xfs_trans_read_buf event tracing
From: Pratyush Anand <panand@xxxxxxxxxx>
Date: Thu, 19 Feb 2015 18:54:33 +0530
Cc: ddutile@xxxxxxxxxx, jbastian@xxxxxxxxxx, Pratyush Anand <panand@xxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
My root file system is xfs. As soon as I enable event for
xfs_trans_read_buf `echo xfs:xfs_trans_read_buf >>
/sys/kernel/debug/tracing/set_event`, I see a kernel panic.

A little bit of debugging shows that bp->b_fspriv is NULL many a time
when trace_xfs_trans_read_buf(bp->b_fspriv) is called.

I do not have any idea about xfs filesystem. So, I am not sure, if it
is expected to have bp->b_fspriv = NULL at this location.

This patch fixes the issue, until we have a better fix.

Signed-off-by: Pratyush Anand <panand@xxxxxxxxxx>
 fs/xfs/xfs_trans_buf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c
index 0a4d4ab6d9a9..0b67a20643bf 100644
--- a/fs/xfs/xfs_trans_buf.c
+++ b/fs/xfs/xfs_trans_buf.c
@@ -329,7 +329,8 @@ xfs_trans_read_buf_map(
        if (tp)
                _xfs_trans_bjoin(tp, bp, 1);
-       trace_xfs_trans_read_buf(bp->b_fspriv);
+       if (bp->b_fspriv)
+               trace_xfs_trans_read_buf(bp->b_fspriv);
        *bpp = bp;
        return 0;

<Prev in Thread] Current Thread [Next in Thread>