diff options
| author | Dave Chinner <[email protected]> | 2010-07-20 07:52:59 +0000 |
|---|---|---|
| committer | Alex Elder <[email protected]> | 2010-07-26 18:16:48 +0000 |
| commit | ec53d1dbb3ca960e7b552397613358ba1dbd12bd (patch) | |
| tree | 9b04fd4e4f1149ce0b5927c9f9a89d26fa6a3d4a /fs/xfs/linux-2.6/xfs_sync.c | |
| parent | xfs: move inode shrinker unregister even earlier (diff) | |
| download | kernel-ec53d1dbb3ca960e7b552397613358ba1dbd12bd.tar.gz kernel-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 <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Signed-off-by: Dave Chinner <[email protected]>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_sync.c')
0 files changed, 0 insertions, 0 deletions
