Mercurial > yaffs-ecoscentric-gpl
changeset 374:043bd07468b6
Add conditional compilation for background processing
| author | charles <charles> |
|---|---|
| date | Wed, 10 Mar 2010 01:22:19 +0000 |
| parents | 59862f4bbd87 |
| children | b3ebe9f0a186 |
| files | Kconfig moduleconfig.h yaffs_fs.c |
| diffstat | 3 files changed, 48 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/Kconfig +++ b/Kconfig @@ -175,6 +175,8 @@ config YAFFS_EMPTY_LOST_AND_FOUND If this is enabled then the contents of lost and found is automatically dumped at mount. + If unsure, say N. + config YAFFS_DISABLE_BLOCK_REFRESHING bool "Disable yaffs2 block refreshing" depends on YAFFS_FS @@ -184,3 +186,15 @@ config YAFFS_DISABLE_BLOCK_REFRESHING Block refreshing infrequently refreshes the oldest block in a yaffs2 file system. This mechanism helps to refresh flash to mitigate against data loss. This is particularly useful for MLC. + + If unsure, say N. + +config YAFFS_DISABLE_BACKGROUND + bool "Disable yaffs2 background processing" + depends on YAFFS_FS + default n + help + If this is set, then background processing is disabled. + Background processing makes many foreground activities faster. + + If unsure, say N.
--- a/moduleconfig.h +++ b/moduleconfig.h @@ -57,6 +57,10 @@ /* Block Refreshing periodically rewrites the oldest block. */ /* #define CONFIG_DISABLE_BLOCK_REFRESHING */ +/* Default: Unselected */ +/* Meaning: Select to disable background processing */ +/* #define CONFIG_DISABLE_BACKGROUND */ + /* Older-style on-NAND data format has a "pageStatus" byte to record
--- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -32,10 +32,15 @@ */ const char *yaffs_fs_c_version = - "$Id: yaffs_fs.c,v 1.97 2010-03-09 04:12:00 charles Exp $"; + "$Id: yaffs_fs.c,v 1.98 2010-03-10 01:22:19 charles Exp $"; extern const char *yaffs_guts_c_version; #include <linux/version.h> + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10)) +#define YAFFS_COMPILE_BACKGROUND +#endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)) #include <linux/config.h> #endif @@ -52,7 +57,11 @@ extern const char *yaffs_guts_c_version; #include <linux/string.h> #include <linux/ctype.h> +#ifdef YAFFS_COMPILE_BACKGROUND #include <linux/kthread.h> +#include <linux/delay.h> +#endif + #include "asm/div64.h" @@ -1840,6 +1849,7 @@ static int yaffs_do_sync_fs(struct super * The thread should not do any writing while the fs is in read only. */ +#ifdef YAFFS_COMPILE_BACKGROUND static int yaffs_BackgroundThread(void *data) { yaffs_Device *dev = (yaffs_Device *)data; @@ -1892,6 +1902,22 @@ static void yaffs_BackgroundStop(yaffs_D ctxt->bgThread = NULL; } } +#else +static int yaffs_BackgroundThread(void *data) +{ + return 0; +} + +static int yaffs_BackgroundStart(yaffs_Device *dev) +{ + return 0; +} + +static void yaffs_BackgroundStop(yaffs_Device *dev) +{ +} +#endif + #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17)) static void yaffs_write_super(struct super_block *sb) @@ -2370,7 +2396,10 @@ static struct super_block *yaffs_interna param->noTagsECC = 1; #endif +#ifdef CONFIG_YAFFS_DISABLE_BACKGROUND +#else param->deferDirectoryUpdate = 1; +#endif if(options.tags_ecc_overridden) param->noTagsECC = !options.tags_ecc_on;
