Merge tag 'for-5.2/block-20190507' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2019 01:14:36 +0000 (18:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2019 01:14:36 +0000 (18:14 -0700)
Pull block updates from Jens Axboe:
 "Nothing major in this series, just fixes and improvements all over the
  map. This contains:

   - Series of fixes for sed-opal (David, Jonas)

   - Fixes and performance tweaks for BFQ (via Paolo)

   - Set of fixes for bcache (via Coly)

   - Set of fixes for md (via Song)

   - Enabling multi-page for passthrough requests (Ming)

   - Queue release fix series (Ming)

   - Device notification improvements (Martin)

   - Propagate underlying device rotational status in loop (Holger)

   - Removal of mtip32xx trim support, which has been disabled for years
     (Christoph)

   - Improvement and cleanup of nvme command handling (Christoph)

   - Add block SPDX tags (Christoph)

   - Cleanup/hardening of bio/bvec iteration (Christoph)

   - A few NVMe pull requests (Christoph)

   - Removal of CONFIG_LBDAF (Christoph)

   - Various little fixes here and there"

* tag 'for-5.2/block-20190507' of git://git.kernel.dk/linux-block: (164 commits)
  block: fix mismerge in bvec_advance
  block: don't drain in-progress dispatch in blk_cleanup_queue()
  blk-mq: move cancel of hctx->run_work into blk_mq_hw_sysfs_release
  blk-mq: always free hctx after request queue is freed
  blk-mq: split blk_mq_alloc_and_init_hctx into two parts
  blk-mq: free hw queue's resource in hctx's release handler
  blk-mq: move cancel of requeue_work into blk_mq_release
  blk-mq: grab .q_usage_counter when queuing request from plug code path
  block: fix function name in comment
  nvmet: protect discovery change log event list iteration
  nvme: mark nvme_core_init and nvme_core_exit static
  nvme: move command size checks to the core
  nvme-fabrics: check more command sizes
  nvme-pci: check more command sizes
  nvme-pci: remove an unneeded variable initialization
  nvme-pci: unquiesce admin queue on shutdown
  nvme-pci: shutdown on timeout during deletion
  nvme-pci: fix psdt field for single segment sgls
  nvme-multipath: don't print ANA group state by default
  nvme-multipath: split bios with the ns_head bio_set before submitting
  ...

20 files changed:
1  2 
block/blk-integrity.c
block/blk-mq-sysfs.c
drivers/block/drbd/drbd_int.h
drivers/block/floppy.c
drivers/md/dm-crypt.c
drivers/md/dm-integrity.c
drivers/nvme/host/core.c
drivers/staging/erofs/data.c
drivers/staging/erofs/unzip_vle.c
fs/block_dev.c
fs/btrfs/compression.c
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/inode.c
fs/ext4/super.c
fs/iomap.c
fs/ocfs2/super.c
fs/xfs/xfs_aops.c
fs/xfs/xfs_super.c
lib/Kconfig.debug

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
  
  static inline void read_endio(struct bio *bio)
  {
-       int i;
 +      struct super_block *const sb = bio->bi_private;
        struct bio_vec *bvec;
 -      const blk_status_t err = bio->bi_status;
 +      blk_status_t err = bio->bi_status;
        struct bvec_iter_all iter_all;
  
-       bio_for_each_segment_all(bvec, bio, i, iter_all) {
 +      if (time_to_inject(EROFS_SB(sb), FAULT_READ_IO)) {
 +              erofs_show_injection_info(FAULT_READ_IO);
 +              err = BLK_STS_IOERR;
 +      }
 +
+       bio_for_each_segment_all(bvec, bio, iter_all) {
                struct page *page = bvec->bv_page;
  
                /* page is already locked */
@@@ -844,13 -843,14 +844,12 @@@ static void z_erofs_vle_unzip_kickoff(v
  
  static inline void z_erofs_vle_read_endio(struct bio *bio)
  {
 -      const blk_status_t err = bio->bi_status;
 +      struct erofs_sb_info *sbi = NULL;
 +      blk_status_t err = bio->bi_status;
-       unsigned int i;
        struct bio_vec *bvec;
 -#ifdef EROFS_FS_HAS_MANAGED_CACHE
 -      struct address_space *mc = NULL;
 -#endif
        struct bvec_iter_all iter_all;
  
-       bio_for_each_segment_all(bvec, bio, i, iter_all) {
+       bio_for_each_segment_all(bvec, bio, iter_all) {
                struct page *page = bvec->bv_page;
                bool cachemngd = false;
  
diff --cc fs/block_dev.c
@@@ -261,11 -260,10 +260,11 @@@ __blkdev_direct_IO_simple(struct kiocb 
        }
        __set_current_state(TASK_RUNNING);
  
-       bio_for_each_segment_all(bvec, &bio, i, iter_all) {
+       bio_for_each_segment_all(bvec, &bio, iter_all) {
                if (should_dirty && !PageCompound(bvec->bv_page))
                        set_page_dirty_lock(bvec->bv_page);
 -              put_page(bvec->bv_page);
 +              if (!bio_flagged(&bio, BIO_NO_PAGE_REF))
 +                      put_page(bvec->bv_page);
        }
  
        if (unlikely(bio.bi_status))
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/ext4/super.c
Simple merge
diff --cc fs/iomap.c
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1930,9 -1927,7 +1930,8 @@@ config TEST_STATIC_KEY
  config TEST_KMOD
        tristate "kmod stress tester"
        depends on m
-       depends on BLOCK && (64BIT || LBDAF)      # for XFS, BTRFS
        depends on NETDEVICES && NET_CORE && INET # for TUN
 +      depends on BLOCK
        select TEST_LKM
        select XFS_FS
        select TUN