From: Johan Hovold <johan@kernel.org>
To: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Cc: "idryomov@gmail.com" <idryomov@gmail.com>,
"dongsheng.yang@linux.dev" <dongsheng.yang@linux.dev>,
"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Subject: Re: [PATCH] block: rbd: switch to dynamic root device
Date: Mon, 27 Apr 2026 17:21:51 +0200 [thread overview]
Message-ID: <ae9_DzhmCX87jkQC@hovoldconsulting.com> (raw)
In-Reply-To: <ac8ef2a52e42512d17ef3e29cc94353c191c6846.camel@ibm.com>
On Fri, Apr 24, 2026 at 06:48:32PM +0000, Viacheslav Dubeyko wrote:
> On Fri, 2026-04-24 at 12:39 +0200, Johan Hovold wrote:
> > Driver core expects devices to be dynamically allocated and will, for
> > example, complain loudly when no release function has been provided.
> >
> > Use root_device_register() to allocate and register the root device
> > instead of open coding using a static device.
> > @@ -5390,7 +5383,7 @@ static struct rbd_device *__rbd_dev_create(struct rbd_spec *spec)
> >
> > rbd_dev->dev.bus = &rbd_bus_type;
> > rbd_dev->dev.type = &rbd_device_type;
> > - rbd_dev->dev.parent = &rbd_root_dev;
> > + rbd_dev->dev.parent = rbd_root_dev;
> > device_initialize(&rbd_dev->dev);
> >
> > return rbd_dev;
> > @@ -7331,15 +7324,13 @@ static int __init rbd_sysfs_init(void)
> > {
> > int ret;
> >
> > - ret = device_register(&rbd_root_dev);
> > - if (ret < 0) {
> > - put_device(&rbd_root_dev);
> > - return ret;
> > - }
> > + rbd_root_dev = root_device_register("rbd");
> > + if (IS_ERR(rbd_root_dev))
> > + return PTR_ERR(rbd_root_dev);
> >
> > ret = bus_register(&rbd_bus_type);
> > if (ret < 0)
> > - device_unregister(&rbd_root_dev);
> > + root_device_unregister(rbd_root_dev);
>
> I think we need to assign NULL here:
>
> rbd_root_dev = NULL;
From what I can tell these devices are only created from the bus sysfs
attribute so this pointer will not be accessed if bus registration
fails and there is no need to clear it (or add a sanity check to
__rbd_dev_create()).
> > return ret;
> > }
> > @@ -7347,7 +7338,7 @@ static int __init rbd_sysfs_init(void)
> > static void __exit rbd_sysfs_cleanup(void)
> > {
> > bus_unregister(&rbd_bus_type);
> > - device_unregister(&rbd_root_dev);
> > + root_device_unregister(rbd_root_dev);
>
> The same issue here:
>
> rbd_root_dev = NULL;
So this is not needed either.
Johan
prev parent reply other threads:[~2026-04-27 15:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-24 10:39 [PATCH] block: rbd: switch to dynamic root device Johan Hovold
2026-04-24 18:48 ` Viacheslav Dubeyko
2026-04-27 15:21 ` Johan Hovold [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ae9_DzhmCX87jkQC@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=Slava.Dubeyko@ibm.com \
--cc=axboe@kernel.dk \
--cc=ceph-devel@vger.kernel.org \
--cc=dongsheng.yang@linux.dev \
--cc=idryomov@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox