summaryrefslogtreecommitdiffstats
path: root/fs/jffs2/jffs2_fs_sb.h
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2007-10-06 21:12:58 +0200
committerDavid Woodhouse <dwmw2@infradead.org>2007-10-06 21:12:58 +0200
commit8fb870df5a1f261294b833dd807bcba3bacface6 (patch)
tree2e6018f0256feca906797b248603202962302fa6 /fs/jffs2/jffs2_fs_sb.h
parent[MTD] [NAND] Avoid deadlock in erase callback; release chip lock first. (diff)
downloadlinux-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.h2
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;