aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fs-writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r--fs/fs-writeback.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 4fcca4f74940..0079bf59b583 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -200,7 +200,6 @@ static void bdi_queue_work_onstack(struct wb_writeback_args *args)
200/** 200/**
201 * bdi_start_writeback - start writeback 201 * bdi_start_writeback - start writeback
202 * @bdi: the backing device to write from 202 * @bdi: the backing device to write from
203 * @sb: write inodes from this super_block
204 * @nr_pages: the number of pages to write 203 * @nr_pages: the number of pages to write
205 * 204 *
206 * Description: 205 * Description:
@@ -209,25 +208,34 @@ static void bdi_queue_work_onstack(struct wb_writeback_args *args)
209 * completion. Caller need not hold sb s_umount semaphore. 208 * completion. Caller need not hold sb s_umount semaphore.
210 * 209 *
211 */ 210 */
212void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, 211void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages)
213 long nr_pages)
214{ 212{
215 struct wb_writeback_args args = { 213 struct wb_writeback_args args = {
216 .sb = sb,
217 .sync_mode = WB_SYNC_NONE, 214 .sync_mode = WB_SYNC_NONE,
218 .nr_pages = nr_pages, 215 .nr_pages = nr_pages,
219 .range_cyclic = 1, 216 .range_cyclic = 1,
220 }; 217 };
221 218
222 /* 219 bdi_alloc_queue_work(bdi, &args);
223 * We treat @nr_pages=0 as the special case to do background writeback, 220}
224 * ie. to sync pages until the background dirty threshold is reached.
225 */
226 if (!nr_pages) {
227 args.nr_pages = LONG_MAX;
228 args.for_background = 1;
229 }
230 221
222/**
223 * bdi_start_background_writeback - start background writeback
224 * @bdi: the backing device to write from
225 *
226 * Description:
227 * This does WB_SYNC_NONE background writeback. The IO is only
228 * started when this function returns, we make no guarentees on
229 * completion. Caller need not hold sb s_umount semaphore.
230 */
231void bdi_start_background_writeback(struct backing_dev_info *bdi)
232{
233 struct wb_writeback_args args = {
234 .sync_mode = WB_SYNC_NONE,
235 .nr_pages = LONG_MAX,
236 .for_background = 1,
237 .range_cyclic = 1,
238 };
231 bdi_alloc_queue_work(bdi, &args); 239 bdi_alloc_queue_work(bdi, &args);
232} 240}
233 241