1. 28 Feb, 2019 1 commit
  2. 27 Feb, 2019 3 commits
  3. 24 Feb, 2019 4 commits
  4. 22 Feb, 2019 2 commits
  5. 21 Feb, 2019 3 commits
    • Ming Lei's avatar
      block: bounce: make sure that bvec table is updated · 8f4e80da
      Ming Lei authored
      Block bounce needs to allocate new page for doing IO, and the
      new page has to be updated to bvec table.
      
      Commit 6dc4f100 switches __blk_queue_bounce() to use the new
      bio_for_each_segment_all() interface. Unfortunately the new
      bio_for_each_segment_all() can't be used to update bvec table.
      
      This patch fixes this issue by retrieving bvec from the table
      directly, then the new allocated page can be updated to the bio.
      This way is safe because the cloned bio is single page bvec.
      
      Fixes: 6dc4f100 ("block: allow bio_for_each_segment_all() to iterate over multi-page bvec")
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Omar Sandoval <osandov@fb.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8f4e80da
    • Jens Axboe's avatar
      Merge branch 'nvme-5.1' of git://git.infradead.org/nvme into for-5.1/block · 037b2625
      Jens Axboe authored
      Pull NVMe changes for 5.1 from Christoph
      
      * 'nvme-5.1' of git://git.infradead.org/nvme: (22 commits)
        nvme-rdma: use nr_phys_segments when map rq to sgl
        nvmet: convert to SPDX identifiers
        nvmet-rdma: convert to SPDX identifiers
        nvme-loop: convert to SPDX identifiers
        nvmet-fcloop: convert to SPDX identifiers
        nvmet-fc: convert to SPDX identifiers
        nvme: convert to SPDX identifiers
        nvme-pci: convert to SPDX identifiers
        nvme-lightnvm: convert to SPDX identifiers
        nvme-rdma: convert to SPDX identifiers
        nvme-fc: convert to SPDX identifiers
        nvme-fabrics: convert to SPDX identifiers
        nvme-tcp.h: fix SPDX header
        nvme_ioctl.h: remove duplicate GPL boilerplate
        nvme: return error from nvme_alloc_ns()
        nvme: avoid that deleting a controller triggers a circular locking complaint
        nvme: introduce a helper function for controller deletion
        nvme: unexport nvme_delete_ctrl_sync()
        nvme-pci: check kstrtoint() return value in queue_count_set()
        nvme-fabrics: document the poll function argument
        ...
      037b2625
    • Chaitanya Kulkarni's avatar
      nvme-rdma: use nr_phys_segments when map rq to sgl · 34e08191
      Chaitanya Kulkarni authored
      Use blk_rq_nr_phys_segments() instead of blk_rq_payload_bytes() to check
      if a command contains data to be mapped.  This fixes the case where
      a struct request contains LBAs, but it has no payload, such as
      Write Zeroes support.
      
      Fixes: 6e02318e ("nvme: add support for the Write Zeroes command")
      Reported-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Tested-by: default avatarMing Lei <tom.leiming@gmail.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      34e08191
  6. 20 Feb, 2019 21 commits
  7. 19 Feb, 2019 1 commit
  8. 15 Feb, 2019 5 commits
    • Jens Axboe's avatar
      Merge tag 'v5.0-rc6' into for-5.1/block · 6fb845f0
      Jens Axboe authored
      Pull in 5.0-rc6 to avoid a dumb merge conflict with fs/iomap.c.
      This is needed since io_uring is now based on the block branch,
      to avoid a conflict between the multi-page bvecs and the bits
      of io_uring that touch the core block parts.
      
      * tag 'v5.0-rc6': (525 commits)
        Linux 5.0-rc6
        x86/mm: Make set_pmd_at() paravirt aware
        MAINTAINERS: Update the ocores i2c bus driver maintainer, etc
        blk-mq: remove duplicated definition of blk_mq_freeze_queue
        Blk-iolatency: warn on negative inflight IO counter
        blk-iolatency: fix IO hang due to negative inflight counter
        MAINTAINERS: unify reference to xen-devel list
        x86/mm/cpa: Fix set_mce_nospec()
        futex: Handle early deadlock return correctly
        futex: Fix barrier comment
        net: dsa: b53: Fix for failure when irq is not defined in dt
        blktrace: Show requests without sector
        mips: cm: reprime error cause
        mips: loongson64: remove unreachable(), fix loongson_poweroff().
        sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
        geneve: should not call rt6_lookup() when ipv6 was disabled
        KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221)
        KVM: x86: work around leak of uninitialized stack contents (CVE-2019-7222)
        kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974)
        signal: Better detection of synchronous signals
        ...
      6fb845f0
    • Ming Lei's avatar
      block: kill BLK_MQ_F_SG_MERGE · 56d18f62
      Ming Lei authored
      QUEUE_FLAG_NO_SG_MERGE has been killed, so kill BLK_MQ_F_SG_MERGE too.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarOmar Sandoval <osandov@fb.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      56d18f62
    • Ming Lei's avatar
      block: kill QUEUE_FLAG_NO_SG_MERGE · 2705c937
      Ming Lei authored
      Since bdced438 ("block: setup bi_phys_segments after splitting"),
      physical segment number is mainly figured out in blk_queue_split() for
      fast path, and the flag of BIO_SEG_VALID is set there too.
      
      Now only blk_recount_segments() and blk_recalc_rq_segments() use this
      flag.
      
      Basically blk_recount_segments() is bypassed in fast path given BIO_SEG_VALID
      is set in blk_queue_split().
      
      For another user of blk_recalc_rq_segments():
      
      - run in partial completion branch of blk_update_request, which is an unusual case
      
      - run in blk_cloned_rq_check_limits(), still not a big problem if the flag is killed
      since dm-rq is the only user.
      
      Multi-page bvec is enabled now, not doing S/G merging is rather pointless with the
      current setup of the I/O path, as it isn't going to save you a significant amount
      of cycles.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarOmar Sandoval <osandov@fb.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2705c937
    • Ming Lei's avatar
      block: document usage of bio iterator helpers · ac4fa1d1
      Ming Lei authored
      Now multi-page bvec is supported, some helpers may return page by
      page, meantime some may return segment by segment, this patch
      documents the usage.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarOmar Sandoval <osandov@fb.com>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      ac4fa1d1
    • Ming Lei's avatar
      block: always define BIO_MAX_PAGES as 256 · 68614289
      Ming Lei authored
      Now multi-page bvec can cover CONFIG_THP_SWAP, so we don't need to
      increase BIO_MAX_PAGES for it.
      
      CONFIG_THP_SWAP needs to split one THP into normal pages and adds
      them all to one bio. With multipage-bvec, it just takes one bvec to
      hold them all.
      Reviewed-by: default avatarOmar Sandoval <osandov@fb.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      68614289