aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorChris Leech <[email protected]>2022-03-21 22:43:04 +0000
committerChristoph Hellwig <[email protected]>2022-03-29 07:29:06 +0000
commitd6d6742772d712ed2238f5071b96baf4924f5fad (patch)
tree6ad2d1225360875a18a3da8ef9a0e67ac9fecb0e /net/unix/af_unix.c
parentnvme: allow duplicate NSIDs for private namespaces (diff)
downloadkernel-d6d6742772d712ed2238f5071b96baf4924f5fad.tar.gz
kernel-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 <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions