Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux
* 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux: writeback: move MIN_WRITEBACK_PAGES to fs-writeback.c writeback: balanced_rate cannot exceed write bandwidth writeback: do strict bdi dirty_exceeded writeback: avoid tiny dirty poll intervals writeback: max, min and target dirty pause time writeback: dirty ratelimit - think time compensation btrfs: fix dirtied pages accounting on sub-page writes writeback: fix dirtied pages accounting on redirty writeback: fix dirtied pages accounting on sub-page writes writeback: charge leaked page dirties to active tasks writeback: Include all dirty inodes in background writeback
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include <linux/sched.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/freezer.h>
|
||||
#include <linux/writeback.h>
|
||||
@@ -28,6 +29,11 @@
|
||||
#include <linux/tracepoint.h>
|
||||
#include "internal.h"
|
||||
|
||||
/*
|
||||
* 4MB minimal write chunk size
|
||||
*/
|
||||
#define MIN_WRITEBACK_PAGES (4096UL >> (PAGE_CACHE_SHIFT - 10))
|
||||
|
||||
/*
|
||||
* Passed into wb_writeback(), essentially a subset of writeback_control
|
||||
*/
|
||||
@@ -742,11 +748,17 @@ static long wb_writeback(struct bdi_writeback *wb,
|
||||
if (work->for_background && !over_bground_thresh(wb->bdi))
|
||||
break;
|
||||
|
||||
/*
|
||||
* Kupdate and background works are special and we want to
|
||||
* include all inodes that need writing. Livelock avoidance is
|
||||
* handled by these works yielding to any other work so we are
|
||||
* safe.
|
||||
*/
|
||||
if (work->for_kupdate) {
|
||||
oldest_jif = jiffies -
|
||||
msecs_to_jiffies(dirty_expire_interval * 10);
|
||||
work->older_than_this = &oldest_jif;
|
||||
}
|
||||
} else if (work->for_background)
|
||||
oldest_jif = jiffies;
|
||||
|
||||
trace_writeback_start(wb->bdi, work);
|
||||
if (list_empty(&wb->b_io))
|
||||
|
Reference in New Issue
Block a user