Merge branch 'for-4.13/block' into for-4.13/merge for-4.13/merge
authorJens Axboe <axboe@kernel.dk>
Fri, 30 Jun 2017 00:09:58 +0000 (18:09 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 30 Jun 2017 00:09:58 +0000 (18:09 -0600)
Signed-off-by: Jens Axboe <axboe@kernel.dk>
14 files changed:
1  2 
MAINTAINERS
block/bio.c
drivers/md/dm-integrity.c
drivers/md/dm-io.c
drivers/md/dm-raid1.c
drivers/md/dm-thin.c
drivers/nvme/host/pci.c
drivers/usb/host/xhci-pci.c
fs/block_dev.c
fs/read_write.c
fs/xfs/xfs_aops.c
fs/xfs/xfs_buf.c
include/acpi/acpi_bus.h
include/linux/bio.h

diff --cc MAINTAINERS
Simple merge
diff --cc block/bio.c
Simple merge
Simple merge
index 8d5ca30f655123611b5dcd2ba3d35b52e9c6c447,81248a8a8b5706dfe6a03d4cbab3aa0b5910f2d4..25039607f3cb629cdd9a5d432075ebc609455fb9
@@@ -317,9 -318,9 +318,9 @@@ static void do_region(int op, int op_fl
        else if (op == REQ_OP_WRITE_SAME)
                special_cmd_max_sectors = q->limits.max_write_same_sectors;
        if ((op == REQ_OP_DISCARD || op == REQ_OP_WRITE_ZEROES ||
 -           op == REQ_OP_WRITE_SAME)  &&
 -          special_cmd_max_sectors == 0) {
 +           op == REQ_OP_WRITE_SAME) && special_cmd_max_sectors == 0) {
 +              atomic_inc(&io->count);
-               dec_count(io, region, -EOPNOTSUPP);
+               dec_count(io, region, BLK_STS_NOTSUPP);
                return;
        }
  
index 4da8858856fb3019c16d5681c241f8733dca21ec,3ab584b686e0ca9c64223737384e44a55f0cff34..f30d8e8e9bbf50da5abf46136c7719b571d9d346
@@@ -1255,26 -1253,16 +1256,26 @@@ static int mirror_end_io(struct dm_targ
                if (!(bio->bi_opf & REQ_PREFLUSH) &&
                    bio_op(bio) != REQ_OP_DISCARD)
                        dm_rh_dec(ms->rh, bio_record->write_region);
-               return error;
+               return DM_ENDIO_DONE;
        }
  
-       if (error == -EOPNOTSUPP)
+       if (*error == BLK_STS_NOTSUPP)
 -              return DM_ENDIO_DONE;
 +              goto out;
  
-       if ((error == -EWOULDBLOCK) && (bio->bi_opf & REQ_RAHEAD))
+       if (bio->bi_opf & REQ_RAHEAD)
 -              return DM_ENDIO_DONE;
 +              goto out;
  
-       if (unlikely(error)) {
+       if (unlikely(*error)) {
 +              if (!bio_record->details.bi_bdev) {
 +                      /*
 +                       * There wasn't enough memory to record necessary
 +                       * information for a retry or there was no other
 +                       * mirror in-sync.
 +                       */
 +                      DMERR_LIMIT("Mirror read failed.");
-                       return -EIO;
++                      goto out;
 +              }
 +
                m = bio_record->m;
  
                DMERR("Mirror read failed from %s. Trying alternative device.",
                        bd = &bio_record->details;
  
                        dm_bio_restore(bd, bio);
-                       bio->bi_error = 0;
 +                      bio_record->details.bi_bdev = NULL;
+                       bio->bi_status = 0;
  
                        queue_bio(ms, bio, rw);
                        return DM_ENDIO_INCOMPLETE;
                DMERR("All replicated volumes dead, failing I/O");
        }
  
-       return error;
 +out:
 +      bio_record->details.bi_bdev = NULL;
 +
+       return DM_ENDIO_DONE;
  }
  
  static void mirror_presuspend(struct dm_target *ti)
Simple merge
Simple merge
Simple merge
diff --cc fs/block_dev.c
index 0a7404ef9335bf7ea19926e2896c9b737951afe5,2c5f08696fff0ada5d4a54ba334cdb93e3861554..a7df151f8aba8ba1447ff4094192754fbea76426
@@@ -262,11 -263,8 +263,11 @@@ __blkdev_direct_IO_simple(struct kiocb 
        if (vecs != inline_vecs)
                kfree(vecs);
  
-       if (unlikely(bio.bi_error))
-               ret = bio.bi_error;
+       if (unlikely(bio.bi_status))
 -              return blk_status_to_errno(bio.bi_status);
++              ret = blk_status_to_errno(bio.bi_status);
 +
 +      bio_uninit(&bio);
 +
        return ret;
  }
  
diff --cc fs/read_write.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge