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

Don Dutile
2015-02-19T22:32:28Z

On 02/19/2015 11:39 AM, Eric Sandeen wrote:
> On 2/19/15 7:24 AM, Pratyush Anand wrote:
>> 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.
>
> What kernel did you hit this on? What did the backtrace look like?
>
> I've been unable to reproduce the problem so far.
>
> Thanks,
> -Eric
>
RHELSA snap7 kernel (that's RHEL Server for ARM; 3.19-based).

Thanks for everyone's attention. Pratyush has provided a link
to the upstream patch, that we have to pull into our kernel.

>> Signed-off-by: Pratyush Anand <panand@redhat.com>
>> ---
>> 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;
>>
>>