diff options
Diffstat (limited to 'fs/fs-writeback.c')
| -rw-r--r-- | fs/fs-writeback.c | 32 |
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 | */ |
| 212 | void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, | 211 | void 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 | */ | ||
| 231 | void 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 | ||
