[PATCHv2 1/3] nvme: Remove RCU namespace protection
Keith Busch
keith.busch at intel.com
Thu Jun 30 15:59:14 PDT 2016
On Thu, Jun 30, 2016 at 10:57:51AM -0400, Keith Busch wrote:
> On Wed, Jun 29, 2016 at 11:48:38PM -0700, Christoph Hellwig wrote:
> > But we remove it from the list before del_gendisk in
> > nvme_remove_invalid_namespaces and nvme_scan_ns_list already. I guess
> > that's fine because we're not going to do I/O on them at this point,
>
> Right, we can safely remove them from the list for those other cases
> precisely because they can't do IO anymore.
>
> > but what prevents us form doing this two step removal in
> > nvme_remove_namespaces?
>
> If the controller fails during del_gendisk, we have to kill all
> the request queues and set capacities to 0 to force del_gendisk to
> complete. If the namespace isn't in the ctrl->namespace list, the driver
> can't find the namespace to kill.
BTW, I have addressed your other concerns and ready to post another
version, but holding off on resending until we all understand why it has
to be this way. I'm also open to an alternative, but this is the best
I've come up with. I'd really like to see this fixed in the current rc
cycle; the bugs this is fixing are pretty bad.
More information about the Linux-nvme
mailing list