Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

Don't allow shrinking a PF_FSTRANS context #446

Closed
wants to merge 1 commit into from

Conversation

dweeezil
Copy link
Contributor

@dweeezil dweeezil commented Apr 2, 2015

Avoid deadlocks when entering the shrinker from a PF_FSTRANS context.

This patch also reverts commit d0d5dd7
which added MUTEX_FSTRANS. Its use has been deprecated within ZFS as it
was an ineffective mechanism to eliminate deadlocks. Among other things,
it introduced the need for strict ordering of mutex locking and unlocking
in order that the PF_FSTRANS flag wouldn't set incorrectly.

Avoid deadlocks when entering the shrinker from a PF_FSTRANS context.

This patch also reverts commit d0d5dd7
which added MUTEX_FSTRANS.  Its use has been deprecated within ZFS as it
was an ineffective mechanism to eliminate deadlocks.  Among other things,
it introduced the need for strict ordering of mutex locking and unlocking
in order that the PF_FSTRANS flag wouldn't set incorrectly.
@dweeezil
Copy link
Contributor Author

dweeezil commented Apr 2, 2015

This is an adjunct to openzfs/zfs#3225.

@behlendorf behlendorf closed this in ae26dd0 Apr 3, 2015
kernelOfTruth pushed a commit to kernelOfTruth/spl that referenced this pull request Apr 4, 2015
Avoid deadlocks when entering the shrinker from a PF_FSTRANS context.

This patch also reverts commit d0d5dd7 which added MUTEX_FSTRANS.  Its
use has been deprecated within ZFS as it was an ineffective mechanism
to eliminate deadlocks.  Among other things, it introduced the need for
strict ordering of mutex locking and unlocking in order that the
PF_FSTRANS flag wouldn't set incorrectly.

Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#446
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant