[Yaffs] Make YAFFS2 work, patch1

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Sergey Kubushyn
Date:  
To: yaffs-list
Subject: [Yaffs] Make YAFFS2 work, patch1
This is a quick hack probably good for foreseable future. I don't think a
revolution for large page devices is on the horizon, we will be using that
nand_oob_64 autoplacement scheme for quite a long time.

The proper way is to consult mtd_info->nand_oobinfo->oobavail and handle
YAFFS tags placement ourselves, in that same mtdif2.c. Autoplacement is not
rocket science, there is nothing divine in it. As a matter of fact it's as
simple as a shovel and proper handling of oobavail part of the entire oob
area is trivial and easier to implement than to write a "Hello, world"
program.

BTW, it is NOT a very good idea to write mtd->oobsize (i.e. 64) bytes of
data out of yaffs_PackedTags2 structure...

Here is the patch:

=== Cut ===
diff -urN linux-2.6.12.orig/fs/yaffs2/yaffs_mtdif2.c linux-2.6.12/fs/yaffs2/yaffs_mtdif2.c
--- linux-2.6.12.orig/fs/yaffs2/yaffs_mtdif2.c    2005-10-11 15:25:07.000000000 -0700
+++ linux-2.6.12/fs/yaffs2/yaffs_mtdif2.c    2005-10-11 15:35:05.000000000 -0700
@@ -66,7 +66,7 @@
                        data);
         if (tags)
             retval =
-                mtd->write_oob(mtd, addr, mtd->oobsize, &dummy,
+                mtd->write_oob(mtd, addr + 2, sizeof(pt), &dummy,
                        (__u8 *) & pt);


     }
@@ -116,7 +116,7 @@
                       dev->spareBuffer);
     }


-    memcpy(&pt, dev->spareBuffer, sizeof(pt));
+    memcpy(&pt, &dev->spareBuffer[2], sizeof(pt));


     if (tags)
         yaffs_UnpackTags2(tags, &pt);
=== Cut ===


---
******************************************************************
*  KSI@home    KOI8 Net  < >  The impossible we do immediately.  *
*  Las Vegas   NV, USA   < >  Miracles require 24-hour notice.   *
******************************************************************