xfs: fix and streamline error handling in xfs_end_io
authorChristoph Hellwig <hch@lst.de>
Thu, 2 Mar 2017 23:02:51 +0000 (15:02 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 07:30:32 +0000 (09:30 +0200)
commitd07b5855ab7f55d780b84df4d53a5c1b349eb43e
tree736924a09eec01c4896c32da3fb0662b5def9bb1
parent3b83a02af271a290eed708246bf03ef7d41786ee
xfs: fix and streamline error handling in xfs_end_io

commit 787eb485509f9d58962bd8b4dbc6a5ac6e2034fe upstream.

There are two different cases of buffered I/O errors:

 - first we can have an already shutdown fs.  In that case we should skip
   any on-disk operations and just clean up the appen transaction if
   present and destroy the ioend
 - a real I/O error.  In that case we should cleanup any lingering COW
   blocks.  This gets skipped in the current code and is fixed by this
   patch.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/xfs_aops.c