[PATCH v2 for-5.8-rc 3/6] nvme: don't protect ns mutation with ns->head->lock
Sagi Grimberg
sagi at grimberg.me
Wed Jun 24 04:24:33 EDT 2020
>> Right now ns->head->lock is protecting namespace mutation
>> which is wrong and unneeded. Move it to only protect
>> against head mutations. While we're at it, remove unnecessary
>> ns->head reference as we already have head pointer.
>
> The changes look reasonable (nitpick below), but this changelog doesn't
> sway what the problem is and how it it fixed.
I'll add to v3:
The problem with this is that the head->lock spans
mpath disk node I/O that may block under some conditions (if
for example the controller is disconnecting or the path
became inaccessible), The locking scheme does not allow any
other path to enable itself, preventing blocked I/O to complete
and forward-progress from there.
This is a preparation patch for the fix in a subsequent patch
where the disk I/O will also be done outside the head->lock.
More information about the Linux-nvme
mailing list