From: charles Date: Wed, 14 Dec 2005 01:18:45 +0000 (+0000) Subject: Add yaffs2 autoselection X-Git-Tag: pre-name-change~379 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=dd2ede7911c7afa2d28cee19f2727a8ba03fc011 Add yaffs2 autoselection --- diff --git a/Kconfig b/Kconfig index 7127050..73e37a0 100644 --- a/Kconfig +++ b/Kconfig @@ -58,6 +58,17 @@ config YAFFS_YAFFS2 If unsure, say Y. +config YAFFS_AUTO_YAFFS2 + bool "Autoselect yaffs2 format" + depends on YAFFS_YAFFS2 + default y + help + Without this, you need to explicitely use yaffs2 as the file + system type. With this, you can say "yaffs" and yaffs or yaffs2 + will be used depending on the device page size. + + If unsure, say Y. + config YAFFS_DISABLE_WIDE_TNODES bool "Turn off wide tnodes" depends on YAFFS_FS diff --git a/yaffs_fs.c b/yaffs_fs.c index b9d440b..2a63162 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.36 2005-12-08 00:54:55 charles Exp $"; + "$Id: yaffs_fs.c,v 1.37 2005-12-14 01:18:45 charles Exp $"; extern const char *yaffs_guts_c_version; #include @@ -1364,6 +1364,15 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion, T(YAFFS_TRACE_OS, (" oobsize %d\n", mtd->oobsize)); T(YAFFS_TRACE_OS, (" erasesize %d\n", mtd->erasesize)); T(YAFFS_TRACE_OS, (" size %d\n", mtd->size)); + +#if CONFIG_YAFFS_AUTO_YAFFS2 + + if (yaffsVersion == 1 && + mtd->oobblock >= 2048) { + T(YAFFS_TRACE_ALWAYS,("yaffs: auto selecting yaffs2\n")); + yaffsVersion = 2; + } +#endif if (yaffsVersion == 2) { /* Check for version 2 style functions */