Merge tag 'regmap-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[cascardo/linux.git] / drivers / nvdimm / btt.c
index 1958829..2542397 100644 (file)
@@ -731,6 +731,7 @@ static int create_arenas(struct btt *btt)
 static int btt_arena_write_layout(struct arena_info *arena)
 {
        int ret;
+       u64 sum;
        struct btt_sb *super;
        struct nd_btt *nd_btt = arena->nd_btt;
        const u8 *parent_uuid = nd_dev_to_uuid(&nd_btt->ndns->dev);
@@ -770,7 +771,8 @@ static int btt_arena_write_layout(struct arena_info *arena)
        super->info2off = cpu_to_le64(arena->info2off - arena->infooff);
 
        super->flags = 0;
-       super->checksum = cpu_to_le64(nd_btt_sb_checksum(super));
+       sum = nd_sb_checksum((struct nd_gen_sb *) super);
+       super->checksum = cpu_to_le64(sum);
 
        ret = btt_info_write(arena, super);
 
@@ -1165,7 +1167,7 @@ static void btt_make_request(struct request_queue *q, struct bio *bio)
         * another kernel subsystem, and we just pass it through.
         */
        if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) {
-               err = -EIO;
+               bio->bi_error = -EIO;
                goto out;
        }
 
@@ -1187,6 +1189,7 @@ static void btt_make_request(struct request_queue *q, struct bio *bio)
                                        "io error in %s sector %lld, len %d,\n",
                                        (rw == READ) ? "READ" : "WRITE",
                                        (unsigned long long) iter.bi_sector, len);
+                       bio->bi_error = err;
                        break;
                }
        }
@@ -1194,7 +1197,7 @@ static void btt_make_request(struct request_queue *q, struct bio *bio)
                nd_iostat_end(bio, start);
 
 out:
-       bio_endio(bio, err);
+       bio_endio(bio);
 }
 
 static int btt_rw_page(struct block_device *bdev, sector_t sector,
@@ -1422,8 +1425,6 @@ static int __init nd_btt_init(void)
 {
        int rc;
 
-       BUILD_BUG_ON(sizeof(struct btt_sb) != SZ_4K);
-
        btt_major = register_blkdev(0, "btt");
        if (btt_major < 0)
                return btt_major;