|
@@ -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);
|
|
|
}
|
|
|
|