aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-06-03 03:38:06 -0400
committerJens Axboe <axboe@fb.com>2017-06-09 11:27:32 -0400
commit4e4cbee93d56137ebff722be022cae5f70ef84fb (patch)
tree4fa7345155599fc6bdd653fca8c5224ddf90a5be /fs/ext4
parentfc17b6534eb8395f0b3133eb31d87deec32c642b (diff)
block: switch bios to blk_status_t
Replace bi_error with a new bi_status to allow for a clear conversion. Note that device mapper overloaded bi_error with a private value, which we'll have to keep arround at least for now and thus propagate to a proper blk_status_t value. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/page-io.c13
-rw-r--r--fs/ext4/readpage.c4
2 files changed, 9 insertions, 8 deletions
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 1a82138ba739..930ca0fc9a0f 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -85,7 +85,7 @@ static void ext4_finish_bio(struct bio *bio)
85 } 85 }
86#endif 86#endif
87 87
88 if (bio->bi_error) { 88 if (bio->bi_status) {
89 SetPageError(page); 89 SetPageError(page);
90 mapping_set_error(page->mapping, -EIO); 90 mapping_set_error(page->mapping, -EIO);
91 } 91 }
@@ -104,7 +104,7 @@ static void ext4_finish_bio(struct bio *bio)
104 continue; 104 continue;
105 } 105 }
106 clear_buffer_async_write(bh); 106 clear_buffer_async_write(bh);
107 if (bio->bi_error) 107 if (bio->bi_status)
108 buffer_io_error(bh); 108 buffer_io_error(bh);
109 } while ((bh = bh->b_this_page) != head); 109 } while ((bh = bh->b_this_page) != head);
110 bit_spin_unlock(BH_Uptodate_Lock, &head->b_state); 110 bit_spin_unlock(BH_Uptodate_Lock, &head->b_state);
@@ -303,24 +303,25 @@ static void ext4_end_bio(struct bio *bio)
303 bdevname(bio->bi_bdev, b), 303 bdevname(bio->bi_bdev, b),
304 (long long) bio->bi_iter.bi_sector, 304 (long long) bio->bi_iter.bi_sector,
305 (unsigned) bio_sectors(bio), 305 (unsigned) bio_sectors(bio),
306 bio->bi_error)) { 306 bio->bi_status)) {
307 ext4_finish_bio(bio); 307 ext4_finish_bio(bio);
308 bio_put(bio); 308 bio_put(bio);
309 return; 309 return;
310 } 310 }
311 bio->bi_end_io = NULL; 311 bio->bi_end_io = NULL;
312 312
313 if (bio->bi_error) { 313 if (bio->bi_status) {
314 struct inode *inode = io_end->inode; 314 struct inode *inode = io_end->inode;
315 315
316 ext4_warning(inode->i_sb, "I/O error %d writing to inode %lu " 316 ext4_warning(inode->i_sb, "I/O error %d writing to inode %lu "
317 "(offset %llu size %ld starting block %llu)", 317 "(offset %llu size %ld starting block %llu)",
318 bio->bi_error, inode->i_ino, 318 bio->bi_status, inode->i_ino,
319 (unsigned long long) io_end->offset, 319 (unsigned long long) io_end->offset,
320 (long) io_end->size, 320 (long) io_end->size,
321 (unsigned long long) 321 (unsigned long long)
322 bi_sector >> (inode->i_blkbits - 9)); 322 bi_sector >> (inode->i_blkbits - 9));
323 mapping_set_error(inode->i_mapping, bio->bi_error); 323 mapping_set_error(inode->i_mapping,
324 blk_status_to_errno(bio->bi_status));
324 } 325 }
325 326
326 if (io_end->flag & EXT4_IO_END_UNWRITTEN) { 327 if (io_end->flag & EXT4_IO_END_UNWRITTEN) {
diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c
index a81b829d56de..40a5497b0f60 100644
--- a/fs/ext4/readpage.c
+++ b/fs/ext4/readpage.c
@@ -73,7 +73,7 @@ static void mpage_end_io(struct bio *bio)
73 int i; 73 int i;
74 74
75 if (ext4_bio_encrypted(bio)) { 75 if (ext4_bio_encrypted(bio)) {
76 if (bio->bi_error) { 76 if (bio->bi_status) {
77 fscrypt_release_ctx(bio->bi_private); 77 fscrypt_release_ctx(bio->bi_private);
78 } else { 78 } else {
79 fscrypt_decrypt_bio_pages(bio->bi_private, bio); 79 fscrypt_decrypt_bio_pages(bio->bi_private, bio);
@@ -83,7 +83,7 @@ static void mpage_end_io(struct bio *bio)
83 bio_for_each_segment_all(bv, bio, i) { 83 bio_for_each_segment_all(bv, bio, i) {
84 struct page *page = bv->bv_page; 84 struct page *page = bv->bv_page;
85 85
86 if (!bio->bi_error) { 86 if (!bio->bi_status) {
87 SetPageUptodate(page); 87 SetPageUptodate(page);
88 } else { 88 } else {
89 ClearPageUptodate(page); 89 ClearPageUptodate(page);