1. 27 Sep, 2022 5 commits
  2. 24 Sep, 2022 9 commits
  3. 23 Sep, 2022 1 commit
    • Jens Axboe's avatar
      Merge branch 'md-next' of... · 4324796e
      Jens Axboe authored
      Merge branch 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.1/block
      
      Pull MD updates and fixes from Song:
      
      "1. Various raid5 fix and clean up, by Logan Gunthorpe and David Sloan.
       2. Raid10 performance optimization, by Yu Kuai."
      
      * 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md:
        md: Fix spelling mistake in comments of r5l_log
        md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d
        md/raid10: convert resync_lock to use seqlock
        md/raid10: fix improper BUG_ON() in raise_barrier()
        md/raid10: prevent unnecessary calls to wake_up() in fast path
        md/raid10: don't modify 'nr_waitng' in wait_barrier() for the case nowait
        md/raid10: factor out code from wait_barrier() to stop_waiting_barrier()
        md: Remove extra mddev_get() in md_seq_start()
        md/raid5: Remove unnecessary bio_put() in raid5_read_one_chunk()
        md/raid5: Ensure stripe_fill happens on non-read IO with journal
        md/raid5: Don't read ->active_stripes if it's not needed
        md/raid5: Cleanup prototype of raid5_get_active_stripe()
        md/raid5: Drop extern on function declarations in raid5.h
        md/raid5: Refactor raid5_get_active_stripe()
        md: Replace snprintf with scnprintf
        md/raid10: fix compile warning
        md/raid5: Fix spelling mistakes in comments
      4324796e
  4. 22 Sep, 2022 23 commits
  5. 21 Sep, 2022 2 commits
    • Yu Kuai's avatar
      blk-wbt: call rq_qos_add() after wb_normal is initialized · 8c5035df
      Yu Kuai authored
      Our test found a problem that wbt inflight counter is negative, which
      will cause io hang(noted that this problem doesn't exist in mainline):
      
      t1: device create	t2: issue io
      add_disk
       blk_register_queue
        wbt_enable_default
         wbt_init
          rq_qos_add
          // wb_normal is still 0
      			/*
      			 * in mainline, disk can't be opened before
      			 * bdev_add(), however, in old kernels, disk
      			 * can be opened before blk_register_queue().
      			 */
      			blkdev_issue_flush
                              // disk size is 0, however, it's not checked
                               submit_bio_wait
                                submit_bio
                                 blk_mq_submit_bio
                                  rq_qos_throttle
                                   wbt_wait
      			      bio_to_wbt_flags
                                     rwb_enabled
      			       // wb_normal is 0, inflight is not increased
      
          wbt_queue_depth_changed(&rwb->rqos);
           wbt_update_limits
           // wb_normal is initialized
                                  rq_qos_track
                                   wbt_track
                                    rq->wbt_flags |= bio_to_wbt_flags(rwb, bio);
      			      // wb_normal is not 0,wbt_flags will be set
      t3: io completion
      blk_mq_free_request
       rq_qos_done
        wbt_done
         wbt_is_tracked
         // return true
         __wbt_done
          wbt_rqw_done
           atomic_dec_return(&rqw->inflight);
           // inflight is decreased
      
      commit 8235b5c1 ("block: call bdev_add later in device_add_disk") can
      avoid this problem, however it's better to fix this problem in wbt:
      
      1) Lower kernel can't backport this patch due to lots of refactor.
      2) Root cause is that wbt call rq_qos_add() before wb_normal is
      initialized.
      
      Fixes: e34cbd30 ("blk-wbt: add general throttling mechanism")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
      Link: https://lore.kernel.org/r/20220913105749.3086243-1-yukuai1@huaweicloud.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8c5035df
    • Christoph Hellwig's avatar
      rnbd-srv: remove struct rnbd_dev · f7de4886
      Christoph Hellwig authored
      Given that rnbd_srv_sess_dev already has an open_flags member, there
      is no need for the rnbd_dev indirection as a simple block_device pointer
      works just as well.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Acked-by: default avatarJack Wang <jinpu.wang@ionos.com>
      Link: https://lore.kernel.org/r/20220909131509.3263924-5-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      f7de4886