|
@@ -1965,36 +1965,6 @@ bool wb_over_bg_thresh(struct bdi_writeback *wb)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-void throttle_vm_writeout(gfp_t gfp_mask)
|
|
|
-{
|
|
|
- unsigned long background_thresh;
|
|
|
- unsigned long dirty_thresh;
|
|
|
-
|
|
|
- for ( ; ; ) {
|
|
|
- global_dirty_limits(&background_thresh, &dirty_thresh);
|
|
|
- dirty_thresh = hard_dirty_limit(&global_wb_domain, dirty_thresh);
|
|
|
-
|
|
|
- /*
|
|
|
- * Boost the allowable dirty threshold a bit for page
|
|
|
- * allocators so they don't get DoS'ed by heavy writers
|
|
|
- */
|
|
|
- dirty_thresh += dirty_thresh / 10; /* wheeee... */
|
|
|
-
|
|
|
- if (global_node_page_state(NR_UNSTABLE_NFS) +
|
|
|
- global_node_page_state(NR_WRITEBACK) <= dirty_thresh)
|
|
|
- break;
|
|
|
- congestion_wait(BLK_RW_ASYNC, HZ/10);
|
|
|
-
|
|
|
- /*
|
|
|
- * The caller might hold locks which can prevent IO completion
|
|
|
- * or progress in the filesystem. So we cannot just sit here
|
|
|
- * waiting for IO to complete.
|
|
|
- */
|
|
|
- if ((gfp_mask & (__GFP_FS|__GFP_IO)) != (__GFP_FS|__GFP_IO))
|
|
|
- break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* sysctl handler for /proc/sys/vm/dirty_writeback_centisecs
|
|
|
*/
|