Fix the configure CONFIG_* option detection
[zfs.git] / module / zfs / zpl_file.c
index fc2b813..c2e3a6b 100644 (file)
@@ -354,7 +354,16 @@ zpl_putpage(struct page *pp, struct writeback_control *wbc, void *data)
 {
        int error;
 
+       /*
+        * Disable the normal reclaim path for zpl_putpage().  This
+        * ensures that all memory allocations under this call path
+        * will never enter direct reclaim.  If this were to happen
+        * the VM might try to write out additional pages by calling
+        * zpl_putpage() again resulting in a deadlock.
+        */
+       current->flags |= PF_MEMALLOC;
        error = -zfs_putpage(pp, wbc, data);
+       current->flags &= ~PF_MEMALLOC;
 
        if (error) {
                SetPageError(pp);