Revert Fix ASSERTION(!dsl_pool_sync_context(tx->tx_pool))
authorRichard Yao <ryao@cs.stonybrook.edu>
Wed, 16 May 2012 03:19:32 +0000 (23:19 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 27 Aug 2012 19:01:37 +0000 (12:01 -0700)
Commit eec8164771bee067c3cd55ed0a16dadeeba276de worked around an issue
involving direct reclaim through the use of PF_MEMALLOC.   Since we
are reworking thing to use KM_PUSHPAGE so that swap works, we revert
this patch in favor of the use of KM_PUSHPAGE in the affected areas.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #726

module/zfs/txg.c

index 1cb3cb6..c234567 100644 (file)
@@ -382,19 +382,6 @@ txg_sync_thread(dsl_pool_t *dp)
        callb_cpr_t cpr;
        uint64_t start, delta;
 
-#ifdef _KERNEL
-       /*
-        * 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
-        */
-       current->flags |= PF_MEMALLOC;
-#endif /* _KERNEL */
-
        txg_thread_enter(tx, &cpr);
 
        start = delta = 0;