Re: s390 boot woe due to "block: fix busy device checking in blk_drop_partitions"

From: Qian Cai
Date: Fri Apr 10 2020 - 08:20:23 EST




> On Apr 10, 2020, at 1:45 AM, Christoph Hellwig <hch@xxxxxx> wrote:
>
> Please try this patch:

It works fine.

>
> ---
> From f42fb98cc627f9b960fd5b9a3a229da5c5dcf54a Mon Sep 17 00:00:00 2001
> From: Christoph Hellwig <hch@xxxxxx>
> Date: Fri, 10 Apr 2020 07:14:13 +0200
> Subject: block: fix busy device checking in blk_drop_partitions again
>
> The previous fix had an off by one in the bd_openers checking, counting
> the callers blkdev_get.
>
> Fixes: d3ef5536274f ("block: fix busy device checking in blk_drop_partitions")
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
> block/partitions/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/partitions/core.c b/block/partitions/core.c
> index 1a0a829d8416..bc1ded1331b1 100644
> --- a/block/partitions/core.c
> +++ b/block/partitions/core.c
> @@ -496,7 +496,7 @@ int blk_drop_partitions(struct gendisk *disk, struct block_device *bdev)
>
> if (!disk_part_scan_enabled(disk))
> return 0;
> - if (bdev->bd_part_count || bdev->bd_openers)
> + if (bdev->bd_part_count || bdev->bd_openers > 1)
> return -EBUSY;
> res = invalidate_partition(disk, 0);
> if (res)
> --
> 2.25.1
>