aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libspl
diff options
context:
space:
mode:
authorPaul Dagnelie <[email protected]>2021-01-27 21:29:58 -0800
committerBrian Behlendorf <[email protected]>2021-01-28 11:39:13 -0800
commit43eaef6de817dab3e098488f8e02a11fe57944d0 (patch)
tree9ebe6bafbcec835720574c2d8276294b35d0f640 /lib/libspl
parent5bc4c39d70fbb3dd8dfa8a5708573abd8b801a68 (diff)
Fix zrele race in zrele_async that can cause hang
There is a race condition in zfs_zrele_async when we are checking if we would be the one to evict an inode. This can lead to a txg sync deadlock. Instead of calling into iput directly, we attempt to perform the atomic decrement ourselves, unless that would set the i_count value to zero. In that case, we dispatch a call to iput to run later, to prevent a deadlock from occurring. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Signed-off-by: Paul Dagnelie <[email protected]> Closes #11527 Closes #11530
Diffstat (limited to 'lib/libspl')
0 files changed, 0 insertions, 0 deletions