diff options
author | 2022-03-21 15:43:04 -0700 | |
---|---|---|
committer | 2022-03-29 09:29:06 +0200 | |
commit | d6d6742772d712ed2238f5071b96baf4924f5fad (patch) | |
tree | 6ad2d1225360875a18a3da8ef9a0e67ac9fecb0e /tools/perf/util/scripting-engines/trace-event-python.c | |
parent | nvme: allow duplicate NSIDs for private namespaces (diff) | |
download | wireguard-linux-d6d6742772d712ed2238f5071b96baf4924f5fad.tar.xz wireguard-linux-d6d6742772d712ed2238f5071b96baf4924f5fad.zip |
nvme: fix RCU hole that allowed for endless looping in multipath round robin
Make nvme_ns_remove match the assumptions elsewhere.
1) !NVME_NS_READY needs to be srcu synchronized to make sure nothing is
running in __nvme_find_path or nvme_round_robin_path that will
re-assign this ns to current_path.
2) Any matching current_path entries need to be cleared before removing
from the siblings list, to prevent calling nvme_round_robin_path with
an "old" ns that's off list.
3) Finally the list_del_rcu can happen, and then synchronize again
before releasing any reference counts.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions