|
@@ -2199,6 +2199,7 @@ int end_extent_writepage(struct page *page, int err, u64 start, u64 end)
|
|
|
/* Writeback already completed */
|
|
|
if (ret == 0)
|
|
|
return 1;
|
|
|
+ BUG_ON(ret < 0);
|
|
|
}
|
|
|
|
|
|
if (!uptodate) {
|
|
@@ -2351,6 +2352,7 @@ error_handled:
|
|
|
if (ret == 0)
|
|
|
goto error_handled;
|
|
|
}
|
|
|
+ BUG_ON(ret < 0);
|
|
|
}
|
|
|
|
|
|
if (uptodate) {
|
|
@@ -2402,8 +2404,8 @@ btrfs_bio_alloc(struct block_device *bdev, u64 first_sector, int nr_vecs,
|
|
|
return bio;
|
|
|
}
|
|
|
|
|
|
-static int submit_one_bio(int rw, struct bio *bio, int mirror_num,
|
|
|
- unsigned long bio_flags)
|
|
|
+static int __must_check submit_one_bio(int rw, struct bio *bio,
|
|
|
+ int mirror_num, unsigned long bio_flags)
|
|
|
{
|
|
|
int ret = 0;
|
|
|
struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1;
|
|
@@ -2474,6 +2476,7 @@ static int submit_extent_page(int rw, struct extent_io_tree *tree,
|
|
|
bio_add_page(bio, page, page_size, offset) < page_size) {
|
|
|
ret = submit_one_bio(rw, bio, mirror_num,
|
|
|
prev_bio_flags);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
bio = NULL;
|
|
|
} else {
|
|
|
return 0;
|
|
@@ -2494,8 +2497,10 @@ static int submit_extent_page(int rw, struct extent_io_tree *tree,
|
|
|
|
|
|
if (bio_ret)
|
|
|
*bio_ret = bio;
|
|
|
- else
|
|
|
+ else {
|
|
|
ret = submit_one_bio(rw, bio, mirror_num, bio_flags);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
+ }
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -2707,8 +2712,10 @@ int extent_read_full_page(struct extent_io_tree *tree, struct page *page,
|
|
|
|
|
|
ret = __extent_read_full_page(tree, page, get_extent, &bio, mirror_num,
|
|
|
&bio_flags);
|
|
|
- if (bio)
|
|
|
+ if (bio) {
|
|
|
ret = submit_one_bio(READ, bio, mirror_num, bio_flags);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
+ }
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -3126,10 +3133,14 @@ retry:
|
|
|
static void flush_epd_write_bio(struct extent_page_data *epd)
|
|
|
{
|
|
|
if (epd->bio) {
|
|
|
+ int rw = WRITE;
|
|
|
+ int ret;
|
|
|
+
|
|
|
if (epd->sync_io)
|
|
|
- submit_one_bio(WRITE_SYNC, epd->bio, 0, 0);
|
|
|
- else
|
|
|
- submit_one_bio(WRITE, epd->bio, 0, 0);
|
|
|
+ rw = WRITE_SYNC;
|
|
|
+
|
|
|
+ ret = submit_one_bio(rw, epd->bio, 0, 0);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
epd->bio = NULL;
|
|
|
}
|
|
|
}
|
|
@@ -3245,8 +3256,10 @@ int extent_readpages(struct extent_io_tree *tree,
|
|
|
page_cache_release(page);
|
|
|
}
|
|
|
BUG_ON(!list_empty(pages));
|
|
|
- if (bio)
|
|
|
- submit_one_bio(READ, bio, 0, bio_flags);
|
|
|
+ if (bio) {
|
|
|
+ int ret = submit_one_bio(READ, bio, 0, bio_flags);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
+ }
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -4075,8 +4088,10 @@ int read_extent_buffer_pages(struct extent_io_tree *tree,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (bio)
|
|
|
- submit_one_bio(READ, bio, mirror_num, bio_flags);
|
|
|
+ if (bio) {
|
|
|
+ err = submit_one_bio(READ, bio, mirror_num, bio_flags);
|
|
|
+ BUG_ON(err < 0);
|
|
|
+ }
|
|
|
|
|
|
if (ret || wait != WAIT_COMPLETE)
|
|
|
return ret;
|