scoutfs: don't dirty btree buffers

The btree sets some buffer head flags before it writes them to satisfy
submit_bh() requirements.  It was setting dirty which wasn't required.
Nothing every cleared dirty so those buffers sat around and were never
freed.  Each btree block we wrote sat around forever.  Eventually the vm
gets clogged up and the world backs up trying to allocate pages to
write and we see massive stalls.

With this fix we no longer see the 'buffers' vm stat continously grow
and IO rates are consistent over time.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2017-09-27 15:47:37 -07:00
committed by Mark Fasheh
parent 4bc565be39
commit b6c592f099

View File

@@ -1844,7 +1844,6 @@ int scoutfs_btree_write_dirty(struct super_block *sb)
for_each_dirty_bh(bti, bh, tmp) {
lock_buffer(bh);
set_buffer_dirty(bh);
set_buffer_mapped(bh);
bh->b_end_io = end_buffer_write_sync;
get_bh(bh);