2021-03-11 15:21:25

by Daniel Wagner

[permalink] [raw]
Subject: [PATCH v2] block: Suppress uevent for hidden device when removed

register_disk() suppress uevents for devices with the GENHD_FL_HIDDEN
but enables uevents at the end again in order to announce disk after
possible partitions are created.

When the device is removed the uevents are still on and user land sees
'remove' messages for devices which were never 'add'ed to the system.

KERNEL[95481.571887] remove /devices/virtual/nvme-fabrics/ctl/nvme5/nvme0c5n1 (block)

Let's suppress the uevents for GENHD_FL_HIDDEN by not enabling the
uevents at all.

Signed-off-by: Daniel Wagner <[email protected]>
---

This version behaves in the same way as v1, that is I don't see any
other effects than the expected missing uevent remove event.

v2:
- never enable the uevents for GENHD_FL_HIDDEN
instead adding another test add del_gendisk()

block/genhd.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index c55e8f0fced1..8c8f543572e6 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -534,10 +534,8 @@ static void register_disk(struct device *parent, struct gendisk *disk,
kobject_create_and_add("holders", &ddev->kobj);
disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);

- if (disk->flags & GENHD_FL_HIDDEN) {
- dev_set_uevent_suppress(ddev, 0);
+ if (disk->flags & GENHD_FL_HIDDEN)
return;
- }

disk_scan_partitions(disk);

--
2.29.2


2021-03-11 15:56:31

by Christoph Hellwig

[permalink] [raw]

2021-03-11 16:07:54

by Martin Wilck

[permalink] [raw]
Subject: Re: [PATCH v2] block: Suppress uevent for hidden device when removed

On Thu, 2021-03-11 at 16:19 +0100, Daniel Wagner wrote:
> register_disk() suppress uevents for devices with the GENHD_FL_HIDDEN
> but enables uevents at the end again in order to announce disk after
> possible partitions are created.
>
> When the device is removed the uevents are still on and user land
> sees
> 'remove' messages for devices which were never 'add'ed to the system.
>
> ? KERNEL[95481.571887] remove?? /devices/virtual/nvme-
> fabrics/ctl/nvme5/nvme0c5n1 (block)
>
> Let's suppress the uevents for GENHD_FL_HIDDEN by not enabling the
> uevents at all.
>
> Signed-off-by: Daniel Wagner <[email protected]>

Reviewed-by: Martin Wilck <[email protected]>

2021-03-11 18:53:06

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH v2] block: Suppress uevent for hidden device when removed

On 3/11/21 8:19 AM, Daniel Wagner wrote:
> register_disk() suppress uevents for devices with the GENHD_FL_HIDDEN
> but enables uevents at the end again in order to announce disk after
> possible partitions are created.
>
> When the device is removed the uevents are still on and user land sees
> 'remove' messages for devices which were never 'add'ed to the system.
>
> KERNEL[95481.571887] remove /devices/virtual/nvme-fabrics/ctl/nvme5/nvme0c5n1 (block)
>
> Let's suppress the uevents for GENHD_FL_HIDDEN by not enabling the
> uevents at all.

Applied, thanks.

--
Jens Axboe