diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2007-01-31 04:38:53 -0500 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2007-02-09 10:34:08 -0500 |
commit | a7a6ace1406f95c3edb8365788f85984377f3832 (patch) | |
tree | 852a51608c1e2f437786750ca326ee8ce4b61364 /fs/jffs2/jffs2_fs_sb.h | |
parent | 73a4421c5a0aa77b996891e7616b396c360b3ed8 (diff) |
[JFFS2] Use MTD_OOB_AUTO to automatically place cleanmarker on NAND
Nowadays MTD supports an MTD_OOB_AUTO option which allows users
to access free bytes in NAND's OOB as a contiguous buffer, although
it may be highly discontinuous.
This patch teaches JFFS2 to use this nice feature instead of the
old MTD_OOB_PLACE option. This for example caused problems with
OneNAND. Now JFFS2 does not care how are the free bytes situated.
This may change position of the clean marker on some flashes,
but this is not a problem. JFFS2 will just re-erase the empty
eraseblocks and write the new (correct) clean marker.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/jffs2_fs_sb.h')
-rw-r--r-- | fs/jffs2/jffs2_fs_sb.h | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/fs/jffs2/jffs2_fs_sb.h b/fs/jffs2/jffs2_fs_sb.h index b98594992eed..ea88f69af130 100644 --- a/fs/jffs2/jffs2_fs_sb.h +++ b/fs/jffs2/jffs2_fs_sb.h | |||
@@ -98,20 +98,14 @@ struct jffs2_sb_info { | |||
98 | uint32_t wbuf_pagesize; /* 0 for NOR and other flashes with no wbuf */ | 98 | uint32_t wbuf_pagesize; /* 0 for NOR and other flashes with no wbuf */ |
99 | 99 | ||
100 | #ifdef CONFIG_JFFS2_FS_WRITEBUFFER | 100 | #ifdef CONFIG_JFFS2_FS_WRITEBUFFER |
101 | /* Write-behind buffer for NAND flash */ | 101 | unsigned char *wbuf; /* Write-behind buffer for NAND flash */ |
102 | unsigned char *wbuf; | ||
103 | unsigned char *oobbuf; | ||
104 | uint32_t wbuf_ofs; | 102 | uint32_t wbuf_ofs; |
105 | uint32_t wbuf_len; | 103 | uint32_t wbuf_len; |
106 | struct jffs2_inodirty *wbuf_inodes; | 104 | struct jffs2_inodirty *wbuf_inodes; |
107 | |||
108 | struct rw_semaphore wbuf_sem; /* Protects the write buffer */ | 105 | struct rw_semaphore wbuf_sem; /* Protects the write buffer */ |
109 | 106 | ||
110 | /* Information about out-of-band area usage... */ | 107 | unsigned char *oobbuf; |
111 | struct nand_ecclayout *ecclayout; | 108 | int oobavail; /* How many bytes are available for JFFS2 in OOB */ |
112 | uint32_t badblock_pos; | ||
113 | uint32_t fsdata_pos; | ||
114 | uint32_t fsdata_len; | ||
115 | #endif | 109 | #endif |
116 | 110 | ||
117 | struct jffs2_summary *summary; /* Summary information */ | 111 | struct jffs2_summary *summary; /* Summary information */ |