block: add a bi_error field to struct bio
[cascardo/linux.git] / fs / nfs / blocklayout / blocklayout.c
index d2554fe..9cd4eb3 100644 (file)
@@ -116,7 +116,7 @@ bl_submit_bio(int rw, struct bio *bio)
 
 static struct bio *
 bl_alloc_init_bio(int npg, struct block_device *bdev, sector_t disk_sector,
-               void (*end_io)(struct bio *, int err), struct parallel_io *par)
+               bio_end_io_t end_io, struct parallel_io *par)
 {
        struct bio *bio;
 
@@ -139,8 +139,7 @@ bl_alloc_init_bio(int npg, struct block_device *bdev, sector_t disk_sector,
 static struct bio *
 do_add_page_to_bio(struct bio *bio, int npg, int rw, sector_t isect,
                struct page *page, struct pnfs_block_dev_map *map,
-               struct pnfs_block_extent *be,
-               void (*end_io)(struct bio *, int err),
+               struct pnfs_block_extent *be, bio_end_io_t end_io,
                struct parallel_io *par, unsigned int offset, int *len)
 {
        struct pnfs_block_dev *dev =
@@ -183,11 +182,11 @@ retry:
        return bio;
 }
 
-static void bl_end_io_read(struct bio *bio, int err)
+static void bl_end_io_read(struct bio *bio)
 {
        struct parallel_io *par = bio->bi_private;
 
-       if (err) {
+       if (bio->bi_error) {
                struct nfs_pgio_header *header = par->data;
 
                if (!header->pnfs_error)
@@ -316,13 +315,12 @@ out:
        return PNFS_ATTEMPTED;
 }
 
-static void bl_end_io_write(struct bio *bio, int err)
+static void bl_end_io_write(struct bio *bio)
 {
        struct parallel_io *par = bio->bi_private;
-       const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
        struct nfs_pgio_header *header = par->data;
 
-       if (!uptodate) {
+       if (bio->bi_error) {
                if (!header->pnfs_error)
                        header->pnfs_error = -EIO;
                pnfs_set_lo_fail(header->lseg);