diff options
author | Christoph Hellwig <hch@lst.de> | 2010-06-19 17:08:22 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 12:23:06 -0400 |
commit | 082439004b31adc146e96e5f1c574dd2b57dcd93 (patch) | |
tree | 19ef2ccab9588c2aa77d0b09c2bae760b23ae110 /mm/backing-dev.c | |
parent | c1955ce32fdb0877b7a1b22feb2669358f65be76 (diff) |
writeback: merge bdi_writeback_task and bdi_start_fn
Move all code for the writeback thread into fs/fs-writeback.c instead of
splitting it over two functions in two files.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'mm/backing-dev.c')
-rw-r--r-- | mm/backing-dev.c | 44 |
1 files changed, 1 insertions, 43 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 6c2a09c8922c..bceac647e4d1 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
@@ -260,48 +260,6 @@ static void bdi_wb_init(struct bdi_writeback *wb, struct backing_dev_info *bdi) | |||
260 | INIT_LIST_HEAD(&wb->b_more_io); | 260 | INIT_LIST_HEAD(&wb->b_more_io); |
261 | } | 261 | } |
262 | 262 | ||
263 | static int bdi_start_fn(void *ptr) | ||
264 | { | ||
265 | struct bdi_writeback *wb = ptr; | ||
266 | struct backing_dev_info *bdi = wb->bdi; | ||
267 | int ret; | ||
268 | |||
269 | /* | ||
270 | * Add us to the active bdi_list | ||
271 | */ | ||
272 | spin_lock_bh(&bdi_lock); | ||
273 | list_add_rcu(&bdi->bdi_list, &bdi_list); | ||
274 | spin_unlock_bh(&bdi_lock); | ||
275 | |||
276 | current->flags |= PF_FLUSHER | PF_SWAPWRITE; | ||
277 | set_freezable(); | ||
278 | |||
279 | /* | ||
280 | * Our parent may run at a different priority, just set us to normal | ||
281 | */ | ||
282 | set_user_nice(current, 0); | ||
283 | |||
284 | /* | ||
285 | * Clear pending bit and wakeup anybody waiting to tear us down | ||
286 | */ | ||
287 | clear_bit(BDI_pending, &bdi->state); | ||
288 | smp_mb__after_clear_bit(); | ||
289 | wake_up_bit(&bdi->state, BDI_pending); | ||
290 | |||
291 | ret = bdi_writeback_task(wb); | ||
292 | |||
293 | wb->task = NULL; | ||
294 | |||
295 | /* | ||
296 | * Flush any work that raced with us exiting. No new work | ||
297 | * will be added, since this bdi isn't discoverable anymore. | ||
298 | */ | ||
299 | if (!list_empty(&bdi->work_list)) | ||
300 | wb_do_writeback(wb, 1); | ||
301 | |||
302 | return ret; | ||
303 | } | ||
304 | |||
305 | int bdi_has_dirty_io(struct backing_dev_info *bdi) | 263 | int bdi_has_dirty_io(struct backing_dev_info *bdi) |
306 | { | 264 | { |
307 | return wb_has_dirty_io(&bdi->wb); | 265 | return wb_has_dirty_io(&bdi->wb); |
@@ -425,7 +383,7 @@ static int bdi_forker_task(void *ptr) | |||
425 | spin_unlock_bh(&bdi_lock); | 383 | spin_unlock_bh(&bdi_lock); |
426 | 384 | ||
427 | wb = &bdi->wb; | 385 | wb = &bdi->wb; |
428 | wb->task = kthread_run(bdi_start_fn, wb, "flush-%s", | 386 | wb->task = kthread_run(bdi_writeback_thread, wb, "flush-%s", |
429 | dev_name(bdi->dev)); | 387 | dev_name(bdi->dev)); |
430 | /* | 388 | /* |
431 | * If task creation fails, then readd the bdi to | 389 | * If task creation fails, then readd the bdi to |