diff options
author | Wu Fengguang <fengguang.wu@gmail.com> | 2009-12-03 07:54:25 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-12-03 07:54:25 -0500 |
commit | b17621fed6aa039387e35f9b4d34d98f213e5673 (patch) | |
tree | bc755d1aa204518600a6d82dd51d970c685dc68c | |
parent | 951c30d135390a108f102b0f6e3cfa6241f2a1aa (diff) |
writeback: introduce wbc.for_background
It will lower the flush priority for NFS, and maybe more in future.
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r-- | fs/fs-writeback.c | 1 | ||||
-rw-r--r-- | fs/nfs/write.c | 2 | ||||
-rw-r--r-- | include/linux/writeback.h | 1 |
3 files changed, 3 insertions, 1 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 0306c8e7d6b5..0793961f7699 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -738,6 +738,7 @@ static long wb_writeback(struct bdi_writeback *wb, | |||
738 | .sync_mode = args->sync_mode, | 738 | .sync_mode = args->sync_mode, |
739 | .older_than_this = NULL, | 739 | .older_than_this = NULL, |
740 | .for_kupdate = args->for_kupdate, | 740 | .for_kupdate = args->for_kupdate, |
741 | .for_background = args->for_background, | ||
741 | .range_cyclic = args->range_cyclic, | 742 | .range_cyclic = args->range_cyclic, |
742 | }; | 743 | }; |
743 | unsigned long oldest_jif; | 744 | unsigned long oldest_jif; |
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 53eb26c16b50..c84b5cc1a943 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -178,7 +178,7 @@ static int wb_priority(struct writeback_control *wbc) | |||
178 | { | 178 | { |
179 | if (wbc->for_reclaim) | 179 | if (wbc->for_reclaim) |
180 | return FLUSH_HIGHPRI | FLUSH_STABLE; | 180 | return FLUSH_HIGHPRI | FLUSH_STABLE; |
181 | if (wbc->for_kupdate) | 181 | if (wbc->for_kupdate || wbc->for_background) |
182 | return FLUSH_LOWPRI; | 182 | return FLUSH_LOWPRI; |
183 | return 0; | 183 | return 0; |
184 | } | 184 | } |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 66ebddcff664..705f01fe413a 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -49,6 +49,7 @@ struct writeback_control { | |||
49 | unsigned nonblocking:1; /* Don't get stuck on request queues */ | 49 | unsigned nonblocking:1; /* Don't get stuck on request queues */ |
50 | unsigned encountered_congestion:1; /* An output: a queue is full */ | 50 | unsigned encountered_congestion:1; /* An output: a queue is full */ |
51 | unsigned for_kupdate:1; /* A kupdate writeback */ | 51 | unsigned for_kupdate:1; /* A kupdate writeback */ |
52 | unsigned for_background:1; /* A background writeback */ | ||
52 | unsigned for_reclaim:1; /* Invoked from the page allocator */ | 53 | unsigned for_reclaim:1; /* Invoked from the page allocator */ |
53 | unsigned range_cyclic:1; /* range_start is cyclic */ | 54 | unsigned range_cyclic:1; /* range_start is cyclic */ |
54 | unsigned more_io:1; /* more io to be dispatched */ | 55 | unsigned more_io:1; /* more io to be dispatched */ |