diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-07-20 17:52:59 +1000 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-07-26 13:16:48 -0500 |
commit | ec53d1dbb3ca960e7b552397613358ba1dbd12bd (patch) | |
tree | 9b04fd4e4f1149ce0b5927c9f9a89d26fa6a3d4a /fs/fuse | |
parent | a4190f90b4e22bde8b01b0086e00dd95439e2edd (diff) | |
download | blackbird-op-linux-ec53d1dbb3ca960e7b552397613358ba1dbd12bd.tar.gz blackbird-op-linux-ec53d1dbb3ca960e7b552397613358ba1dbd12bd.zip |
xfs: don't block on buffer read errors
xfs_buf_read() fails to detect dispatch errors before attempting to
wait on sychronous IO. If there was an error, it will get stuck
forever, waiting for an I/O that was never started. Make sure the
error is detected correctly.
Further, such a failure can leave locked pages in the page cache
which will cause a later operation to hang on the page. Ensure that
we correctly process pages in the buffers when we get a dispatch
error.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/fuse')
0 files changed, 0 insertions, 0 deletions