Add Phils checkpoint configuration
authorcharles <charles>
Tue, 19 Dec 2006 21:33:41 +0000 (21:33 +0000)
committercharles <charles>
Tue, 19 Dec 2006 21:33:41 +0000 (21:33 +0000)
Kconfig
moduleconfig.h
yaffs_fs.c

diff --git a/Kconfig b/Kconfig
index 9cc372e..dd33079 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -90,6 +90,24 @@ config YAFFS_DISABLE_LAZY_LOAD
 
          If unsure, say N.
 
 
          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
 config YAFFS_DISABLE_WIDE_TNODES
        bool "Turn off wide tnodes"
        depends on YAFFS_FS
index e67c7bc..41fb3c5 100644 (file)
 /* Meaning: Cache short names, taking more RAM, but faster look-ups */
 #define CONFIG_YAFFS_SHORT_NAMES_IN_RAM
 
 /* 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__ */
 #endif /* YAFFS_OUT_OF_TREE */
 
 #endif /* __YAFFS_CONFIG_H__ */
index 5ff8f36..368e657 100644 (file)
@@ -31,7 +31,7 @@
  */
 
 const char *yaffs_fs_c_version =
  */
 
 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 <linux/config.h>
 extern const char *yaffs_guts_c_version;
 
 #include <linux/config.h>
@@ -1662,7 +1662,7 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion,
 #endif
                nBlocks = mtd->size / mtd->erasesize;
 
 #endif
                nBlocks = mtd->size / mtd->erasesize;
 
-               dev->nCheckpointReservedBlocks = 10;
+               dev->nCheckpointReservedBlocks = CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS;
                dev->startBlock = 0;
                dev->endBlock = nBlocks - 1;
        } else {
                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;
        if (rg & YAFFS_TRACE_ALWAYS) {
                for (i = 0; mask_flags[i].mask_name != NULL; i++) {
                        char flag;