+#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 */
+