]> git.karo-electronics.de Git - linux-beck.git/commit
xfs: pass state not whichfork to trace_xfs_extlist
authorEric Sandeen <sandeen@sandeen.net>
Mon, 9 Jan 2017 15:38:49 +0000 (16:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 10:39:42 +0000 (11:39 +0100)
commita585e1c4ec939d1cc5ce8776c606733d046072da
treefc3a9018566c9aa124da2bb6c19a95b2fa3cb270
parentbdbfd4ee6bc7aa37062f0222a143b3c3fee7282e
xfs: pass state not whichfork to trace_xfs_extlist

commit 7710517fc37b1899722707883b54694ea710b3c0 upstream.

When xfs_bmap_trace_exlist called trace_xfs_extlist,
it sent in the "whichfork" var instead of the bmap "state"
as expected (even though state was already set up for this
purpose).

As a result, the xfs_bmap_class in tracing code used
"whichfork" not state in xfs_iext_state_to_fork(), and got
the wrong ifork pointer.  It all goes downhill from
there, including an ASSERT when ifp_bytes is empty
by the time it reaches xfs_iext_get_ext():

XFS: Assertion failed: idx < ifp->if_bytes / sizeof(xfs_bmbt_rec_t)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/libxfs/xfs_bmap.c