Thread (14 messages) 14 messages, 4 authors, 2021-09-21

Re: [PATCH 3/3] block: warn if ->groups is set when calling add_disk

From: Dan Williams <hidden>
Date: 2021-09-21 02:17:41
Also in: nvdimm

On Mon, Sep 20, 2021 at 12:30 AM Christoph Hellwig [off-list ref] wrote:
quoted hunk ↗ jump to hunk
The proper API is to pass the groups to device_add_disk, but the code
used to also allow groups being set before calling *add_disk.  Warn
about that but keep the group pointer intact for now so that it can
be removed again after a grace period.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Fixes: 52b85909f85d ("block: fold register_disk into device_add_disk")
---
 block/genhd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/genhd.c b/block/genhd.c
index 7b6e5e1cf9564..409cf608cc5bd 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -439,7 +439,8 @@ int device_add_disk(struct device *parent, struct gendisk *disk,
        dev_set_uevent_suppress(ddev, 1);

        ddev->parent = parent;
-       ddev->groups = groups;
+       if (!WARN_ON_ONCE(ddev->groups))
+               ddev->groups = groups;
That feels too compact to me, and dev_WARN_ONCE() might save someone a
git blame to look up the reason for the warning:

    dev_WARN_ONCE(parent, ddev->groups, "unexpected pre-populated
attribute group\n");
    if (!ddev->groups)
        ddev->groups = groups;

...but not a deal breaker. Either way you can add:

Reviewed-by: Dan Williams <redacted>

Jens, I'm ok for the final spin of this series to go through block.git
since the referenced commits in Fixes: went that route, just let me
know if you want me to take them.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help