1. 17 Oct, 2023 3 commits
  2. 12 Oct, 2023 1 commit
    • Jens Axboe's avatar
      Merge tag 'md-next-20231012' of... · ae3059cf
      Jens Axboe authored
      Merge tag 'md-next-20231012' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.7/block
      
      Pull MD changes from Song:
      
      "1. Rewrite mddev_suspend(), by Yu Kuai;
       2. Simplify md_seq_ops, by Yu Kuai;
       3. Reduce unnecessary locking array_state_store(), by Mariusz Tkaczyk."
      
      * tag 'md-next-20231012' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md: (23 commits)
        md: rename __mddev_suspend/resume() back to mddev_suspend/resume()
        md: remove old apis to suspend the array
        md: suspend array in md_start_sync() if array need reconfiguration
        md/raid5: replace suspend with quiesce() callback
        md/md-linear: cleanup linear_add()
        md: cleanup mddev_create/destroy_serial_pool()
        md: use new apis to suspend array before mddev_create/destroy_serial_pool
        md: use new apis to suspend array for ioctls involed array reconfiguration
        md: use new apis to suspend array for adding/removing rdev from state_store()
        md: use new apis to suspend array for sysfs apis
        md/raid5: use new apis to suspend array
        md/raid5-cache: use new apis to suspend array
        md/md-bitmap: use new apis to suspend array for location_store()
        md/dm-raid: use new apis to suspend array
        md: add new helpers to suspend/resume and lock/unlock array
        md: add new helpers to suspend/resume array
        md: replace is_md_suspended() with 'mddev->suspended' in md_check_recovery()
        md/raid5-cache: use READ_ONCE/WRITE_ONCE for 'conf->log'
        md: use READ_ONCE/WRITE_ONCE for 'suspend_lo' and 'suspend_hi'
        md/raid1: don't split discard io for write behind
        ...
      ae3059cf
  3. 11 Oct, 2023 20 commits
  4. 09 Oct, 2023 1 commit
  5. 05 Oct, 2023 3 commits
  6. 04 Oct, 2023 5 commits
  7. 03 Oct, 2023 2 commits
  8. 29 Sep, 2023 1 commit
    • Jens Axboe's avatar
      Merge tag 'md-next-20230927' of... · 03f7b57a
      Jens Axboe authored
      Merge tag 'md-next-20230927' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.7/block
      
      Pull MD updates from Song:
      
      "1. Make rdev add/remove independent from daemon thread, by Yu Kuai;
       2. Refactor code around quiesce() and mddev_suspend(), by Yu Kuai."
      
      * tag 'md-next-20230927' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md:
        md: replace deprecated strncpy with memcpy
        md/md-linear: Annotate struct linear_conf with __counted_by
        md: don't check 'mddev->pers' and 'pers->quiesce' from suspend_lo_store()
        md: don't check 'mddev->pers' from suspend_hi_store()
        md-bitmap: suspend array earlier in location_store()
        md-bitmap: remove the checking of 'pers->quiesce' from location_store()
        md: don't rely on 'mddev->pers' to be set in mddev_suspend()
        md: initialize 'writes_pending' while allocating mddev
        md: initialize 'active_io' while allocating mddev
        md: delay remove_and_add_spares() for read only array to md_start_sync()
        md: factor out a helper rdev_addable() from remove_and_add_spares()
        md: factor out a helper rdev_is_spare() from remove_and_add_spares()
        md: factor out a helper rdev_removeable() from remove_and_add_spares()
        md: delay choosing sync action to md_start_sync()
        md: factor out a helper to choose sync action from md_check_recovery()
        md: use separate work_struct for md_start_sync()
      03f7b57a
  9. 28 Sep, 2023 3 commits
  10. 27 Sep, 2023 1 commit
    • Yu Kuai's avatar
      md: simplify md_seq_ops · cf1b6d44
      Yu Kuai authored
      Before this patch, the implementation is hacky and hard to understand:
      
      1) md_seq_start set pos to 1;
      2) md_seq_show found pos is 1, then print Personalities;
      3) md_seq_next found pos is 1, then it update pos to the first mddev;
      4) md_seq_show found pos is not 1 or 2, show mddev;
      5) md_seq_next found pos is not 1 or 2, update pos to next mddev;
      6) loop 4-5 until the last mddev, then md_seq_next update pos to 2;
      7) md_seq_show found pos is 2, then print unused devices;
      8) md_seq_next found pos is 2, stop;
      
      This patch remove the magic value and use seq_list_start/next/stop()
      directly, and move printing "Personalities" to md_seq_start(),
      "unsed devices" to md_seq_stop():
      
      1) md_seq_start print Personalities, and then set pos to first mddev;
      2) md_seq_show show mddev;
      3) md_seq_next update pos to next mddev;
      4) loop 2-3 until the last mddev;
      5) md_seq_stop print unsed devices;
      Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
      Signed-off-by: default avatarSong Liu <song@kernel.org>
      Link: https://lore.kernel.org/r/20230927061241.1552837-3-yukuai1@huaweicloud.com
      cf1b6d44