xfs: xfs_trans_read_buf() should return an error on failure
authorDave Chinner <dchinner@redhat.com>
Fri, 25 Mar 2011 22:14:44 +0000 (09:14 +1100)
committerDave Chinner <david@fromorbit.com>
Fri, 25 Mar 2011 22:14:44 +0000 (09:14 +1100)
commit7401aafd5019d32a888e5f27332cf580945574bf
tree6a09fb6c38e6e96e239873bdefd24a890da09c9d
parent1bfd8d04190c615bb8d1d98188dead0c09702208
xfs: xfs_trans_read_buf() should return an error on failure

When inside a transaction and we fail to read a buffer,
xfs_trans_read_buf returns a null buffer pointer and no error.
xfs_do_da_buf() checks the error return, but not the buffer, and as
a result this read failure condition causes a panic when it attempts
to dereference the non-existant buffer.

Make xfs_trans_read_buf() return the same error for this situation
regardless of whether it is in a transaction or not. This means
every caller does not need to check both the error return and the
buffer before proceeding to use the buffer.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_trans_buf.c