From: charles Date: Tue, 19 Dec 2006 21:33:41 +0000 (+0000) Subject: Add Phils checkpoint configuration X-Git-Tag: pre-name-change~322 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=5e1b1f2ad15a8d27d2ee4dadbc712d702dc78b93;ds=sidebyside Add Phils checkpoint configuration --- diff --git a/Kconfig b/Kconfig index 9cc372e..dd33079 100644 --- a/Kconfig +++ b/Kconfig @@ -90,6 +90,24 @@ config YAFFS_DISABLE_LAZY_LOAD If unsure, say N. +config YAFFS_CHECKPOINT_RESERVED_BLOCKS + int "Reserved blocks for checkpointing" + depends on YAFFS_YAFFS2 + default 10 + help + Give the number of Blocks to reserve for checkpointing. These Blocks + are reserved per partition, so if you have very small partitions the + default (10) may be a mess for you. + You can set this value to 0, but that does not mean checkpointing is + disabled at all. There only won't be any specially reserved blocks for + checkpointing, so if there is enough free space on the filesystem, + it will be used for checkpointing. + + If unsure, leave at default (10), but don't wonder if there are always + 2MB used on your large page device partition (10 x 2k pagesize). When + using small partitions or when being very small on space, you probably + want to set this to zero. + config YAFFS_DISABLE_WIDE_TNODES bool "Turn off wide tnodes" depends on YAFFS_FS diff --git a/moduleconfig.h b/moduleconfig.h index e67c7bc..41fb3c5 100644 --- a/moduleconfig.h +++ b/moduleconfig.h @@ -27,6 +27,10 @@ /* Meaning: Cache short names, taking more RAM, but faster look-ups */ #define CONFIG_YAFFS_SHORT_NAMES_IN_RAM +/* Default: 10 */ +/* Meaning: set the count of blocks to reserve for checkpointing */ +#define YAFFS_CHECKPOINT_RESERVED_BLOCKS 10 + #endif /* YAFFS_OUT_OF_TREE */ #endif /* __YAFFS_CONFIG_H__ */ diff --git a/yaffs_fs.c b/yaffs_fs.c index 5ff8f36..368e657 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -31,7 +31,7 @@ */ const char *yaffs_fs_c_version = - "$Id: yaffs_fs.c,v 1.54 2006-10-24 18:09:15 charles Exp $"; + "$Id: yaffs_fs.c,v 1.55 2006-12-19 21:33:41 charles Exp $"; extern const char *yaffs_guts_c_version; #include @@ -1662,7 +1662,7 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion, #endif nBlocks = mtd->size / mtd->erasesize; - dev->nCheckpointReservedBlocks = 10; + dev->nCheckpointReservedBlocks = CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS; dev->startBlock = 0; dev->endBlock = nBlocks - 1; } else { @@ -2009,7 +2009,8 @@ static int yaffs_proc_write(struct file *file, const char *buf, } } - yaffs_traceMask = rg; + yaffs_traceMask = rg | YAFFS_TRACE_ALWAYS; + if (rg & YAFFS_TRACE_ALWAYS) { for (i = 0; mask_flags[i].mask_name != NULL; i++) { char flag;