From 98b2dc79b8bc171a7c07499e247dea296a634fae Mon Sep 17 00:00:00 2001 From: charles Date: Wed, 10 Mar 2010 01:22:19 +0000 Subject: [PATCH] Add conditional compilation for background processing --- Kconfig | 14 ++++++++++++++ moduleconfig.h | 4 ++++ yaffs_fs.c | 31 ++++++++++++++++++++++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/Kconfig b/Kconfig index 6d3790e..8c218e3 100644 --- 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. diff --git a/moduleconfig.h b/moduleconfig.h index f58b8e2..398e851 100644 --- 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 diff --git a/yaffs_fs.c b/yaffs_fs.c index 99de632..63d3164 100644 --- 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 + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10)) +#define YAFFS_COMPILE_BACKGROUND +#endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)) #include #endif @@ -52,7 +57,11 @@ extern const char *yaffs_guts_c_version; #include #include +#ifdef YAFFS_COMPILE_BACKGROUND #include +#include +#endif + #include "asm/div64.h" @@ -1840,6 +1849,7 @@ static int yaffs_do_sync_fs(struct super_block *sb, int do_checkpoint) * 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_Device *dev) 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_internal_read_super(int yaffsVersion, 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; -- 2.30.2