1
0
Fork 0
alistair23-linux/include/trace
Jan Kara f9cae926f3 writeback: Fix sync livelock due to b_dirty_time processing
When we are processing writeback for sync(2), move_expired_inodes()
didn't set any inode expiry value (older_than_this). This can result in
writeback never completing if there's steady stream of inodes added to
b_dirty_time list as writeback rechecks dirty lists after each writeback
round whether there's more work to be done. Fix the problem by using
sync(2) start time is inode expiry value when processing b_dirty_time
list similarly as for ordinarily dirtied inodes. This requires some
refactoring of older_than_this handling which simplifies the code
noticeably as a bonus.

Fixes: 0ae45f63d4 ("vfs: add support for a lazytime mount option")
CC: stable@vger.kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
2020-06-15 09:18:45 +02:00
..
events writeback: Fix sync livelock due to b_dirty_time processing 2020-06-15 09:18:45 +02:00
bpf_probe.h bpf: Reliably preserve btf_trace_xxx types 2020-03-02 16:49:55 -08:00
define_trace.h tracing: introduce TRACE_EVENT_NOP() 2019-04-08 09:22:51 -04:00
perf.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
syscall.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace_events.h Tracing updates: 2020-02-06 07:12:11 +00:00