Files
linux/fs
Jan Kara 9fa65e0973 writeback: Fix periodic writeback after fs mount
commit a5faeaf910 upstream.

Code in blkdev.c moves a device inode to default_backing_dev_info when
the last reference to the device is put and moves the device inode back
to its bdi when the first reference is acquired. This includes moving to
wb.b_dirty list if the device inode is dirty. The code however doesn't
setup timer to wake corresponding flusher thread and while wb.b_dirty
list is non-empty __mark_inode_dirty() will not set it up either. Thus
periodic writeback is effectively disabled until a sync(2) call which can
lead to unexpected data loss in case of crash or power failure.

Fix the problem by setting up a timer for periodic writeback in case we
add the first dirty inode to wb.b_dirty list in bdev_inode_switch_bdi().

Reported-by: Bert De Jonghe <Bert.DeJonghe@amplidata.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-28 16:29:40 -07:00
..
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-03-12 18:55:21 -07:00
2013-06-03 16:40:22 +01:00
2013-05-24 16:22:51 -07:00
2013-07-13 11:42:26 -07:00
2013-04-29 15:41:42 -04:00
2013-03-12 18:55:21 -07:00
2013-03-23 14:15:31 -07:00
2013-05-07 20:16:25 -07:00
2013-03-12 18:55:21 -07:00
2013-07-21 18:21:36 -07:00
2013-05-07 20:16:25 -07:00
2013-04-29 15:40:23 -04:00
2012-10-22 08:50:37 +03:00
2013-05-07 20:16:25 -07:00
2013-03-03 23:00:23 -05:00
2013-02-22 23:31:31 -05:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2013-05-07 20:16:25 -07:00
2013-05-31 15:16:33 -04:00
2013-02-22 23:31:31 -05:00
2013-04-09 14:13:29 -04:00
2013-02-26 02:46:08 -05:00