xfs: lobotomise xfs_trans_read_buf_map()
authorDave Chinner <dchinner@redhat.com>
Wed, 3 Dec 2014 22:43:13 +0000 (09:43 +1100)
committerDave Chinner <david@fromorbit.com>
Wed, 3 Dec 2014 22:43:13 +0000 (09:43 +1100)
commit2d3d0c53df99587e1d58759f805c3aae79fac453
tree0ee91663769ac5c8b3e67d833a596efa1a15b72d
parentcdc9cec7c0ff521edf8c0e9c9432bf8fdccfc702
xfs: lobotomise xfs_trans_read_buf_map()

There's a case in that code where it checks for a buffer match in a
transaction where the buffer is not marked done. i.e. trying to
catch a buffer we have locked in the transaction but have not
completed IO on.

The only way we can find a buffer that has not had IO completed on
it is if it had readahead issued on it, but we never do readahead on
buffers that we have already joined into a transaction. Hence this
condition cannot occur, and buffers locked and joined into a
transaction should always be marked done and not under IO.

Remove this code and re-order xfs_trans_read_buf_map() to remove
duplicated IO dispatch and error handling code.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_trans_buf.c