diff options
author | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-12-12 15:27:25 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-02-12 09:31:11 -0800 |
commit | 30ecc5ae32b59477fd2b8d500a74458b36e8cfba (patch) | |
tree | 1eba990870bcbee4c52af5e06874c8ed55d4c6dc /fs | |
parent | e87492436fe19cdc2ec41560429840ad8057a044 (diff) |
XFS: set b_error from bio error in xfs_buf_bio_end_io
commit cfbe52672fbc6f333892e8dde82c35e0a76aa5f5 upstream.
Preserve any error returned by the bio layer.
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Tim Shimmin <tes@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 36d5fcd3f59..8454dee1683 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1114,8 +1114,7 @@ xfs_buf_bio_end_io( unsigned int blocksize = bp->b_target->bt_bsize; struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; - if (!test_bit(BIO_UPTODATE, &bio->bi_flags)) - bp->b_error = EIO; + xfs_buf_ioerror(bp, -error); do { struct page *page = bvec->bv_page; |