Fix zvol deadlock
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 26 Apr 2011 19:56:35 +0000 (12:56 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 26 Apr 2011 19:56:35 +0000 (12:56 -0700)
commit701b1f8168ebb0ad6b6958b9593488c17adebb44
treee042be24001649626dface6334c778a138a75b4a
parenta1cc0b3290dcf1b5cf759c89352d8bdb44ee41e6
Fix zvol deadlock

It's possible for a zvol_write thread to enter direct memory reclaim
while holding open a transaction group.  This results in the system
attempting to write out data to the disk to free memory.  Unfortunately,
this can't succeed because the the thread doing reclaim is holding open
the txg which must be closed to be synced to disk.  To prevent this
the offending allocation is marked KM_PUSHPAGE which will prevent it
from attempting writeback.

Closes #191
module/zfs/zil.c