[v3,00/10] fix delayed holder tracking

Message ID 20221115141054.1051801-1-yukuai1@huaweicloud.com
Headers
Series fix delayed holder tracking |

Message

Yu Kuai Nov. 15, 2022, 2:10 p.m. UTC
  From: Yu Kuai <yukuai3@huawei.com>

Hi all,

this series tries to fix the delayed holder tracking that is only used by
dm by moving it into dm, where we can track the lifetimes much better.
v2 is from Christoph, here I send v3 with some additional fixes.

Changes since v2:
 - add patch 5 8 and 10 to this series.
 - rewrite last cleanup patch from v2.
Changes since v1:
 - don't blow away ->bd_holder_dir in del_gendisk or add_disk failure
   as the holder unregistration references it
 - add an extra cleanup patch

Christoph Hellwig (6):
  block: clear ->slave_dir when dropping the main slave_dir reference
  dm: remove free_table_devices
  dm: cleanup open_table_device
  dm: cleanup close_table_device
  dm: track per-add_disk holder relations in DM
  block: remove delayed holder registration

Yu Kuai (4):
  dm: make sure create and remove dm device won't race with open and
    close table
  block: fix use after free for bd_holder_dir
  block: store the holder kobject in bd_holder_disk
  block: don't allow a disk link holder to itself

 block/genhd.c          |   6 +-
 block/holder.c         | 103 +++++++++++++-----------------
 drivers/md/dm.c        | 138 ++++++++++++++++++++++++-----------------
 include/linux/blkdev.h |   5 --
 4 files changed, 126 insertions(+), 126 deletions(-)
  

Comments

Jens Axboe Nov. 16, 2022, 10:20 p.m. UTC | #1
On Tue, 15 Nov 2022 22:10:44 +0800, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@huawei.com>
> 
> Hi all,
> 
> this series tries to fix the delayed holder tracking that is only used by
> dm by moving it into dm, where we can track the lifetimes much better.
> v2 is from Christoph, here I send v3 with some additional fixes.
> 
> [...]

Applied, thanks!

[01/10] block: clear ->slave_dir when dropping the main slave_dir reference
        commit: d90db3b1c8676bc88b4309c5a571333de2263b8e
[02/10] dm: remove free_table_devices
        commit: 992ec6a92ac315d3301353ff3beb818fcc34e4e4
[03/10] dm: cleanup open_table_device
        commit: b9a785d2dc6567b2fd9fc60057a6a945a276927a
[04/10] dm: cleanup close_table_device
        commit: 7b5865831c1003122f737df5e16adaa583f1a595
[05/10] dm: make sure create and remove dm device won't race with open and close table
        commit: d563792c8933a810d28ce0f2831f0726c2b15a31
[06/10] dm: track per-add_disk holder relations in DM
        commit: 1a581b72169968f4154b5793828f3bc28b258b35
[07/10] block: remove delayed holder registration
        commit: 7abc077788363ac7194aefd355306f8e974feff7
[08/10] block: fix use after free for bd_holder_dir
        commit: 62f535e1f061b4c2cc76061b6b59af9f9335ee34
[09/10] block: store the holder kobject in bd_holder_disk
        commit: 3b3449c1e6c3fe19f62607ff4f353f8bb82d5c4e
[10/10] block: don't allow a disk link holder to itself
        commit: 077a4033541fc96fb0a955985aab7d1f353da831

Best regards,