|
@@ -8366,11 +8366,8 @@ static void btrfs_endio_direct_read(struct bio *bio)
|
|
|
struct btrfs_io_bio *io_bio = btrfs_io_bio(bio);
|
|
|
blk_status_t err = bio->bi_status;
|
|
|
|
|
|
- if (dip->flags & BTRFS_DIO_ORIG_BIO_SUBMITTED) {
|
|
|
+ if (dip->flags & BTRFS_DIO_ORIG_BIO_SUBMITTED)
|
|
|
err = btrfs_subio_endio_read(inode, io_bio, err);
|
|
|
- if (!err)
|
|
|
- bio->bi_status = 0;
|
|
|
- }
|
|
|
|
|
|
unlock_extent(&BTRFS_I(inode)->io_tree, dip->logical_offset,
|
|
|
dip->logical_offset + dip->bytes - 1);
|
|
@@ -8378,7 +8375,7 @@ static void btrfs_endio_direct_read(struct bio *bio)
|
|
|
|
|
|
kfree(dip);
|
|
|
|
|
|
- dio_bio->bi_status = bio->bi_status;
|
|
|
+ dio_bio->bi_status = err;
|
|
|
dio_end_io(dio_bio);
|
|
|
|
|
|
if (io_bio->end_io)
|