Commit 4ea879b9 authored by Wu Fengguang's avatar Wu Fengguang Committed by Linus Torvalds

writeback: fix queue_io() ordering

This was not a bug, since b_io is empty for kupdate writeback.  The next
patch will do requeue_io() for non-kupdate writeback, so let's fix it.
Signed-off-by: default avatarWu Fengguang <>
Cc: Dave Chinner <>
Cc: Martin Bligh <>
Cc: Michael Rubin <>
Cc: Peter Zijlstra <>
Cc: Christoph Hellwig <>
Cc: Jens Axboe <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 23539afc
......@@ -249,10 +249,18 @@ static void move_expired_inodes(struct list_head *delaying_queue,
* Queue all expired dirty inodes for io, eldest first.
* Before
* newly dirtied b_dirty b_io b_more_io
* =============> gf edc BA
* After
* newly dirtied b_dirty b_io b_more_io
* =============> g fBAedc
* |
* +--> dequeue for IO
static void queue_io(struct bdi_writeback *wb, unsigned long *older_than_this)
list_splice_init(&wb->b_more_io, wb->b_io.prev);
list_splice_init(&wb->b_more_io, &wb->b_io);
move_expired_inodes(&wb->b_dirty, &wb->b_io, older_than_this);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment