CA-397084: SR scan tries to deactivate LV in use by tapdisk #712
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Back when this code was written we didn't have leaf coalesce doing snapshot coalesace operations, and so for performance reasons the scan code didn't reference count LVs that it activated on the assuption that nothing else would be in a position to start using the LV in the meantime. This assumption is no longer valid and induces scan failures when a new VDI is detected and the scan tries to deactivate it whilst it is open and in use by tapdisk. Move the scan code to use the lvactivator so that reference counts will be taken and honoured. Additionally, it's possible that more than one VDI might appear so don't treat this as a singular event and track all VDIs that might have been activated and dereference them at the end.