Messages in this thread | | | Date | Wed, 4 Sep 2019 09:54:45 -0600 | From | Keith Busch <> | Subject | Re: [PATCH] nvme-core: Fix subsystem instance mismatches |
| |
On Wed, Sep 04, 2019 at 05:42:15PM +0200, Christoph Hellwig wrote: > On Wed, Sep 04, 2019 at 08:44:27AM -0600, Keith Busch wrote: > > Let me step through an example: > > > > Ctrl A gets instance 0. > > > > Its subsystem gets the same instance, and takes ref count on it: > > all namespaces in this subsystem will use '0'. > > > > Ctrl B gets instance 1, and it's in the same subsystem as Ctrl A so > > no new subsytem is allocated. > > > > Ctrl A is disconnected, dropping its ref on instance 0, but the > > subsystem still has its refcount, making it unavailable. > > > > Ctrl A is reconnected, and allocates instance 2 because 0 is still in > > use. > > > > Now all the namespaces in this subsystem are prefixed with nvme0, but no > > controller exists with the same prefix. We still have inevitable naming > > mismatch, right? > > I think th major confusion was that we can use the same handle for > and unrelated subsystem vs controller, and that would avoid it. > > I don't see how we can avoid the controller is entirely different > from namespace problem ever.
Can we just ensure there is never a matching controller then? This patch will accomplish that and simpler than wrapping the instance in a refcount'ed object:
http://lists.infradead.org/pipermail/linux-nvme/2019-May/024142.html
| |