Fix ASSERTION(!dsl_pool_sync_context(tx->tx_pool))
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 31 Mar 2011 17:05:58 +0000 (10:05 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 7 Apr 2011 16:52:16 +0000 (09:52 -0700)
commiteec8164771bee067c3cd55ed0a16dadeeba276de
treeff2bb2ff5e551aad021dd1f0b157bd363f224ce7
parent7cb67b45f33fd7a61af24c675c7347eb5264b38c
Fix ASSERTION(!dsl_pool_sync_context(tx->tx_pool))

Disable the normal reclaim path for the txg_sync thread.  This
ensures the thread will never enter dmu_tx_assign() which can
otherwise occur due to direct reclaim.  If this is allowed to
happen the system can deadlock.  Direct reclaim call path:

  ->shrink_icache_memory->prune_icache->dispose_list->
  clear_inode->zpl_clear_inode->zfs_inactive->dmu_tx_assign
module/zfs/txg.c