Re: [PATCH v3] nvme: revalidate paths during rescan

From: Daniel Wagner
Date: Tue Aug 24 2021 - 09:45:01 EST


On Mon, Aug 23, 2021 at 10:16:23AM -0700, Sagi Grimberg wrote:
> > +void nvme_mpath_revalidate_paths(struct nvme_ns *ns)
> > +{
> > + struct nvme_ns_head *head = ns->head;
> > + sector_t capacity = get_capacity(head->disk);
> > + int node;
> > +
> > + for_each_node(node)
> > + rcu_assign_pointer(head->current_path[node], NULL);
> > +
> > + list_for_each_entry_rcu(ns, &head->list, siblings) {
> > + if (capacity != get_capacity(ns->disk))
> > + clear_bit(NVME_NS_READY, &ns->flags);
> > + }
>
> Shouldn't the null setting to current_path come after
> we clear NVME_NS_READY on the ns? Otherwise we may still
> submit and current_path will be populated with the ns
> again...

Ahh, I got it this time! Yes, you are right. I think Christoph has
dropped this patch from the nvme-5.15 queue anyway. I'll resend a new
version with the order changed.

Daniel