[PATCH v2 3/3] nvme/multipath: fix stale ana state for namespaces just added by scan work

Sagi Grimberg sagi at grimberg.me
Wed Sep 15 02:32:44 PDT 2021


>>>>> I agree it should not happen with xarray as inserts preserve sorting,
>>>>> but that patch has the non-trivial removal of the namespaces_rwsem which
>>>>> synchronizes in a lot in a lot of error recovery flows. It's very
>>>>> possible that xarray will introduce regressions.
>>>>
>>>> I've actually started looking over the series earlier today, and staring
>>>> it I'm pretty sure the namespaces_rwsem is completely broken.  There
>>>> is nothing preventing the namespaces from going away in these loops.
>>>
>>> Where? the ns itself? the ns is removed from ctrl->namespaces list under
>>> this rwsem (nvme_ns_remove).
>>
>> Sorry, with the series I meant the xarray conversion that removes the
>> rwsem entirely.
>>
>>>> But I can't see why we don't just always do a sorted insertation into
>>>> the ->namespaces list.  Just trying to figure out the history of the
>>>> delayed sort ATM.
>>>
>>> Don't know the history.
>>
>> git-blame teels me it showed up with the initial ID ns list support
>> from Keith, so not all that much history here.
> 
> The main reason I suggest applying this as a short term fix
> is that it is well isolated and is easy to cherry-pick into the LTS/stable versions.

I think that Christoph's version of keeping the list sorted is pretty
self-contained and can probably apply on stable kernels.



More information about the Linux-nvme mailing list