xfs: xfs_bioerror can die.
authorDave Chinner <dchinner@redhat.com>
Wed, 1 Oct 2014 23:04:56 +0000 (09:04 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 1 Oct 2014 23:04:56 +0000 (09:04 +1000)
commit2718775469a521c8b35442db5d665ac0c8c3c8ac
tree0d8392adf53361e73d76e40ed51a5e03cf6b057b
parent8dac39219827113f14e97507646a610ca426b69e
xfs: xfs_bioerror can die.

Internal buffer write error handling is a mess due to the unnatural
split between xfs_bioerror and xfs_bioerror_relse().

xfs_bwrite() only does sync IO and determines the handler to
call based on b_iodone, so for this caller the only difference
between xfs_bioerror() and xfs_bioerror_release() is the XBF_DONE
flag. We don't care what the XBF_DONE flag state is because we stale
the buffer in both paths - the next buffer lookup will clear
XBF_DONE because XBF_STALE is set. Hence we can use common
error handling for xfs_bwrite().

__xfs_buf_delwri_submit() is a similar - it's only ever called
on writes - all sync or async - and again there's no reason to
handle them any differently at all.

Clean up the nasty error handling and remove xfs_bioerror().

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_buf.c