Merge tag 'v4.12-rc5' into for-4.13/block
authorJens Axboe <axboe@kernel.dk>
Mon, 12 Jun 2017 14:30:13 +0000 (08:30 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 12 Jun 2017 14:30:13 +0000 (08:30 -0600)
We've already got a few conflicts and upcoming work depends on some of the
changes that have gone into mainline as regression fixes for this series.

Pull in 4.12-rc5 to resolve these conflicts and make it easier on down stream
trees to continue working on 4.13 changes.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
27 files changed:
1  2 
block/bio-integrity.c
block/blk-core.c
block/blk-mq.c
block/cfq-iosched.c
drivers/block/loop.c
drivers/block/nbd.c
drivers/block/rbd.c
drivers/md/dm-bufio.c
drivers/md/dm-integrity.c
drivers/md/dm-raid1.c
drivers/md/dm-verity-target.c
drivers/md/dm.c
drivers/md/md.c
drivers/md/raid1.c
drivers/md/raid10.c
drivers/md/raid5-cache.c
drivers/md/raid5-ppl.c
drivers/md/raid5.c
drivers/nvme/host/core.c
drivers/nvme/host/fc.c
drivers/nvme/host/pci.c
drivers/nvme/host/rdma.c
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/inode.c
fs/xfs/xfs_buf.c

Simple merge
Simple merge
diff --cc block/blk-mq.c
index 7af78b1e9db98711f40eee9dae7f5a75211a778a,bb66c96850b18cb419b0e44aab1894169352f9af..da2f2196152519eded4d608eb8fb55fca9eaa3d9
@@@ -1435,8 -1504,9 +1441,8 @@@ static void __blk_mq_try_issue_directly
                return;
        }
  
 -      __blk_mq_requeue_request(rq);
  insert:
-       blk_mq_sched_insert_request(rq, false, true, false, may_sleep);
+       blk_mq_sched_insert_request(rq, false, run_queue, false, may_sleep);
  }
  
  static void blk_mq_try_issue_directly(struct blk_mq_hw_ctx *hctx,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc drivers/md/dm.c
Simple merge
diff --cc drivers/md/md.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 58d311e704e5ce5f2283b741c0b2ebf25ef88ad4,24397d306d532213cf66e1ca0de9aa43bf12d3d5..131d76306e055182a61a133f4246ac1a56bbc6c1
@@@ -1441,14 -1443,25 +1443,25 @@@ static inline int nvme_rdma_queue_is_re
  
                if (!blk_rq_is_passthrough(rq) ||
                    cmd->common.opcode != nvme_fabrics_command ||
-                   cmd->fabrics.fctype != nvme_fabrics_type_connect)
-                       return false;
+                   cmd->fabrics.fctype != nvme_fabrics_type_connect) {
+                       /*
+                        * reconnecting state means transport disruption, which
+                        * can take a long time and even might fail permanently,
+                        * so we can't let incoming I/O be requeued forever.
+                        * fail it fast to allow upper layers a chance to
+                        * failover.
+                        */
+                       if (queue->ctrl->ctrl.state == NVME_CTRL_RECONNECTING)
+                               return -EIO;
+                       else
+                               return -EAGAIN;
+               }
        }
  
-       return true;
+       return 0;
  }
  
 -static int nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,
 +static blk_status_t nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,
                const struct blk_mq_queue_data *bd)
  {
        struct nvme_ns *ns = hctx->queue->queuedata;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge