xfs: use b_maps[] for discontiguous buffers
authorMark Tinguely <tinguely@sgi.com>
Tue, 4 Dec 2012 23:18:02 +0000 (17:18 -0600)
committerBen Myers <bpm@sgi.com>
Wed, 16 Jan 2013 22:07:11 +0000 (16:07 -0600)
commitd44d9bc68e32ad5881b105f82bd259d261d1ef74
tree263045fc7f9efcaaa70e01cb4800193bc4aa1ce9
parenta49f0d1ea3ec94fc7cf33a7c36a16343b74bd565
xfs: use b_maps[] for discontiguous buffers

Commits starting at 77c1a08 introduced a multiple segment support
to xfs_buf. xfs_trans_buf_item_match() could not find a multi-segment
buffer in the transaction because it was looking at the single segment
block number rather than the multi-segment b_maps[0].bm.bn. This
results on a recursive buffer lock that can never be satisfied.

This patch:
 1) Changed the remaining b_map accesses to be b_maps[0] accesses.
 2) Renames the single segment b_map structure to __b_map to avoid
    future confusion.

Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_buf.c
fs/xfs/xfs_buf.h