diff options
author | David Woodhouse <dwmw2@infradead.org> | 2007-10-06 21:12:58 +0200 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2007-10-06 21:12:58 +0200 |
commit | 8fb870df5a1f261294b833dd807bcba3bacface6 (patch) | |
tree | 2e6018f0256feca906797b248603202962302fa6 /fs/jffs2/jffs2_fs_sb.h | |
parent | [MTD] [NAND] Avoid deadlock in erase callback; release chip lock first. (diff) | |
download | linux-8fb870df5a1f261294b833dd807bcba3bacface6.tar.xz linux-8fb870df5a1f261294b833dd807bcba3bacface6.zip |
[JFFS2] Trigger garbage collection when very_dirty_list size becomes excessive
With huge amounts of free space, we weren't bothering to GC for while a
while, and pathological numbers of obsolete nodes were accumulating,
seriously affecting performance on NAND flash (OLPC trac #3978)
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/jffs2_fs_sb.h')
-rw-r--r-- | fs/jffs2/jffs2_fs_sb.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/jffs2/jffs2_fs_sb.h b/fs/jffs2/jffs2_fs_sb.h index ae99cd7fd43b..3a2197f3c812 100644 --- a/fs/jffs2/jffs2_fs_sb.h +++ b/fs/jffs2/jffs2_fs_sb.h @@ -69,6 +69,8 @@ struct jffs2_sb_info { uint8_t resv_blocks_gctrigger; /* ... wake up the GC thread */ uint8_t resv_blocks_gcbad; /* ... pick a block from the bad_list to GC */ uint8_t resv_blocks_gcmerge; /* ... merge pages when garbage collecting */ + /* Number of 'very dirty' blocks before we trigger immediate GC */ + uint8_t vdirty_blocks_gctrigger; uint32_t nospc_dirty_size; |