1 2008-04-02 Xinghua Yang <yxinghua@sunnorth.com.cn>
2 Taiyun Wang <taiyun@sunnorth.com.cn>
3 Andrew Lunn <andrew.lunn@ascom.ch>
5 * cdl/jffs2.cdl: Use CYGPKG_FS_JFFS2_RET_DIRENT_DTYPE to control
6 whether jffs2 sets file type in jffs2_fo_dirread.
7 * src/fs-ecos.c: Set file type in jffs2_fo_dirread.
8 * tests/jffs2_1.c: Test the new d_type in dirent when present.
10 2006-03-09 Andrew Lunn <andrew.lunn@ascom.ch>
12 * src/fs-ecos.c: Generalise the check for broken ARM compilers
13 and add the MIPS compiler as also being broken.
15 2005-08-03 Andrew Lunn <andrew.lunn@ascom.ch>
17 * tests/jffs2_1.c: Include <stdio.h> to stop compiler warning.
19 2005-07-30 Andrew Lunn <andrew.lunn@ascom.ch>
23 2005-02-25 Andrew Lunn <andrew.lunn@ascom.ch>
25 * src/fs-ecos.c (jffs2_truncate_file): Correctly truncate a file
26 when opening it with O_TRUNC. Test case from Knud Woehler.
28 2005-02-08 Estelle HAMMACHE <estelle.hammache@st.com>
31 * src/dir-ecos.c: Fixed the sign of the return codes in various
32 places. iput the inode only after we have finished with
35 2005-01-22 Andrew Lunn <andrew.lunn@ascom.ch>
37 * Merge from public MTD.
39 2004-11-14 Per Hedblom <perhedblom@abem.se>
40 Andrew Lunn <andrew.lunn@ascom.ch>
42 * src/os-ecos.h: Added gc tread support
43 * src/fs-ecos.c: Removed some includes
44 * cdl/jffs2.cdl: Added gc thread support
45 * tests/jffs2_3.c: New text to exersise the garbage collect code.
47 2004-12-13 John Dallaway <jld@ecoscentric.com>
49 * tests/fileio1.c: Rename to jffs2_1.c. eCos test names should be
51 * tests/fseek1.c: Rename to jffs2_2.c.
52 * cdl/jffs2.cdl: Build the renamed tests.
54 2004-12-10 Per Hedblom <per.hedblom@abem.se>
56 * src/fs-ecos.c: Use filesystem locking not file locking otherwise
57 the node cache can be corrupted by multiple operations on
58 different files at the same time.
60 2004-11-11 Andrew Lunn <andrew.lunn@ascom.ch>
62 * Merge from public MTD.
64 2004-11-11 Andrew Lunn <andrew.lunn@ascom.ch>
66 * src/build.c: Removed Oyvind Harboe's patch from 2004-04-19
67 since it was rejected upstream.
69 2004-10-20 Per Hedblom <perhedblom@abem.se>
71 * src/fs-ecos.c (jffs2_open): Call iput on dir node if
73 * src/fs-ecos.c (jffs2_umount): use jffs2_free_full_dirent instead
76 2004-10-07 Knud Woehler <knud.woehler@microplex.de>
78 * src/fs-ecos.c (find_entry): jffs2_lookup may return error codes.
81 2004-09-16 Dirk Eibach <eibach@gdsys.de>
82 2004-09-19 Andrew Lunn <andrew.lunn@ascom.ch>
84 * cdl/jffs2.cdl: Fixed outdated definitions for compression options.
85 * src/fs-ecos.c: Added missing calls for jffs2_compressors_init()
86 and jffs2_compressors_exit()
88 2004-08-13 Andrew Lunn <andrew.lunn@ascom.ch>
90 * src/compr.h: Committed this file which if forgot yesterday.
92 2004-08-12 Andrew Lunn <andrew.lunn@ascom.ch>
93 Gary Thomas <gary@mlbassoc.com>
95 * Merge from public MTD.
97 2004-04-19 Oyvind Harboe <oyvind.harboe@zylin.com>
99 * src/build.c: JFFS2 can now be used as a write-once, read many mode
100 for really small flash disks, e.g. configuration parameters.
102 2004-04-21 Gary Thomas <gary@mlbassoc.com>
104 * src/fs-ecos.c: Merge from public MTD - verify file position
105 after each operation (safety check).
107 2004-04-06 Andrew Lunn <andrew.lunn@ascom.ch>
109 * src/fs-ecos.c (jffs2_extend_file): Fix creation of hole inode's
110 * src/fs-ecos.c (jffs2_fo_lseek): Allow seeking past EOF.
111 * tests/fseek1.c (main): fseek and simple test of a hole in a file
112 * cdl/jffs2.cdl: Added new test program fseek1.
114 2004-03-31 David Woodhouse <dwmw2@infradead.org>
116 * src/fs-ecos.c (jffs2_fo_write): Set ri.isize so that non-append
117 writes don't truncate the file.
119 2004-03-03 Thomas Koeller <thomas.koeller@baslerweb.com>
122 Make JFFS2 honor O_TRUNC flag (again) when opening files with read
125 2004-03-17 Oyvind Harboe <oyvind.harboe@zylin.com>
128 With CYGOPT_FS_JFFS2_WRITE=1, file creation failed. The problem
129 was introduced in fs-ecos.c 1.20
131 2004-03-11 Oyvind Harboe <oyvind.harboe@zylin.com>
134 Fixed umount memory leak. root->jffs2_i.dents where not freed.
136 2004-02-20 Vincent Catros <Vincent.Catros@elios-informatique.fr>
139 (jffs2_find) Policy to skip path separator is no longer
140 "if '/' then skip" but "while '/' then skip" allowing
141 multi '/' separators (i.e : /tmp////foo).
142 (find_entry) Policy to detect end of path is no longer
143 "if '\0' then end_of_path"
144 but "while '/' skip it and then if '\0' then end_of_path"
145 allowing path terminated with any number of '/'
146 (i.e : chdir(/tmp///)).
148 2004-03-03 Thomas Koeller <thomas.koeller@baslerweb.com>
151 Make JFFS2 honor O_TRUNC flag when opening files /w read access.
153 2004-02-17 David Woodhouse <dwmw2@infradead.org>
156 Don't re-initialise the already-locked f->sem. It makes eCos unhappy.
158 2004-01-27 David Woodhouse <dwmw2@infradead.org>
161 Fix bug noted by Howard Gray; dirents belong to, and should dirty,
162 the _parent_inode, not the child (which may be zero in the case
165 2004-01-09 Thomas Koeller <thomas.koeller@baslerweb.com>
167 * src/fs-ecos.c: Fixed inode reference counting in jffs2_ops_link().
169 2004-01-05 Thomas Koeller <thomas.koeller@baslerweb.com>
171 * cdl/jffs2.cdl: Re-added CYGPKG_FS_JFFS2_CFLAGS_REMOVE that had been
172 removed by previous change.
174 2003-11-26 David Woodhouse <dwmw2@infradead.org>
176 JFFS2 cleanup and import of newer code. Remove last vestiges of
177 Linuxisms such as 'struct inode' from the core code, leaving eCos
178 with no excuse, and renaming the eCos 'struct inode' to make that
179 point. Fix i_count handling throughout. Clean up remaining Linuxisms
180 such as 'struct qstr' to the point where jffs2port.h can be removed.
181 Add skeleton for background garbage-collect thread. Fix compression
182 so that it's actually called, and even with the right pointers. Turn
183 on -Werror again. Zero tolerance is a good thing. Make the i_mode
184 conversion functions non-inline to avoid warnings. Fix namespace
185 pollution (of all but ^jffs2_* at least). Move physical flash I/O
186 functions into separate file flashio.c for relatively easy
187 substitution. Various other cruftectomy.
189 2003-11-25 Andrew Lunn <andrew.lunn@ascom.ch>
191 * src/fs-ecos.c: ARM gcc 3.2.3 is also broken. Complain with any
192 ARM gcc 3.2 compiler.
194 2003-11-21 Thomas Koeller <thomas.koeller@baslerweb.com>
196 * cdl/jffs2.cdl: Do not require zlib package if no
197 compression configured.
199 2003-11-20 Thomas Koeller <thomas.koeller@baslerweb.com>
203 * src/fs-ecos.c: Allocate jffs2_raw_node_ref structs
204 from pool or malloc depending on a CDL configuration.
206 2003-11-20 David Woodhouse <dwmw2@infradead.org>
208 * Rearrangement of the compression code into a cleaner API
209 which can be disabled under control from CDL.
211 2003-10-14 Thomas Koeller <thomas.koeller@baslerweb.com>
213 * src/os-ecos.h: Made definition of CONFIG_JFFS2_FS_DEBUG
214 conditional, so it can be overwritten by a -D compiler
217 2003-09-23 Thomas Koeller <thomas.koeller@baslerweb.com>
219 * src/fs-ecos.c: Another umount() fix.
221 2003-09-23 Andrew Lunn <andrew.lunn@ascom.ch>
223 * src/fs-ecos.c: Added test to detect known broken ARM compiler
225 2003-09-23 Thomas Koeller <thomas.koeller@baslerweb.com>
227 * src/fs-ecos.c: Fixed broken hard link creation.
229 2003-09-23 Andrew Lunn <andrew.lunn@ascom.ch>
231 * src/fs-ecos.c: Minor optimization of previous patch.
233 2003-09-21 Thomas Koeller <thomas.koeller@baslerweb.com>
234 Andrew Lunn <andrew.lunn@ascom.ch>
236 * src/fs-ecos.c: Do not decrement mount count for unsuccessful
239 2003-09-19 Thomas Koeller <thomas.koeller@baslerweb.com>
241 * src/fs-ecos.c: Another inode number fix.
243 2003-09-18 Thomas Koeller <thomas.koeller@baslerweb.com>
245 * src/fs-ecos.c: Inode number returned by stat() was bogus.
247 2003-07-27 Andrew Lunn <andrew.lunn@ascom.ch>
249 * src/os-ecos.h: Added new #defines require for the recent jffs2
252 2003-07-27 Michael Checky <Michael_Checky@ThermoKing.com>
254 * src/fs-ecos.c: Changed the return error code to be negative as
255 expected by jffs2_flash_read() and jffs2_flash_write().
257 2003-04-23 Bob Koninckx <bob.koninckx@mech.kuleuven.ac.be>
259 * src/fs-ecos.c: mtab -> cyg_mtab. Ditto cyg_mtab_end.
261 2003-03-25 Thomas Koeller <thomas.koeller@baslerweb.com>
264 Fixed segmentation fault when unmounting file system.
266 2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
268 * cdl/jffs2.cdl: Fix doc link.
270 2003-02-05 Jonathan Larmour <jifl@eCosCentric.com>
272 * cdl/jffs2.cdl: Remove unused flash geometry CDL options.
274 2003-02-04 Gary Thomas <gary@mlbassoc.com> on behalf of
275 2003-02-04 David Woodhouse <dwmw2@cambridge.redhat.com>
297 * cdl/jffs2.cdl: Update to latest public JFFS2 codebase.
305 * src/background.c: Removed/renamed file(s).
308 * include/linux/jffs2_fs_sb.h:
309 * include/linux/jffs2_fs_i.h:
310 * include/linux/jffs2.h: New file(s).
312 2002-12-06 Andrew Lunn <andrew.lunn@ascom.ch>
314 * cdl/jffs2.cdl: Implements the CYGINT_IO_FILEIO_FS interface.
316 2002-10-11 Andrew Lunn <andrew.lunn@ascom.ch>
318 * src/crc32.h (crc32): Use the CRC package for crc calculation
319 * tests/romfileio1.c (main): Pass the name of the device to mount
321 2002-05-20 Jonathan Larmour <jlarmour@redhat.com>
323 * src/LICENCE: New file. Contains license for JFFS2, now GPL+exception.
324 * src/background.c: Point at LICENSE file instead of existing text.
325 * src/build.c: Ditto.
326 * src/compr.c: Ditto.
327 * src/compr_rtime.c: Ditto.
328 * src/compr_rubin.c: Ditto.
329 * src/compr_zlib.c: Ditto.
330 * src/dir-ecos.c: Ditto.
331 * src/erase.c: Ditto.
332 * src/file-ecos.c: Ditto.
334 * src/jffs2.h: Ditto.
336 * src/malloc-ecos.c: Ditto.
337 * src/nodelist.c: Ditto.
338 * src/nodelist.h: Ditto.
339 * src/nodemgmt.c: Ditto.
340 * src/os-ecos.h: Ditto.
341 * src/pushpull.h: Ditto.
343 * src/readinode.c: Ditto.
345 * src/write.c: Ditto.
347 2002-01-28 David Woodhouse <dwmw2@cambridge.redhat.com>
349 * src/super-ecos.c: Removed.
350 * src/jffs2.c: Merge jffs2_write_super() and jffs2_put_super() into
351 the routines from which they were called, put jffs2_read_super()
352 in as a static function with a view to doing same RSN.
353 * src/jffs2port.h: Remove prototypes of functions that died.
354 * cdl/jffs2.cdl: Remove super-ecos.c
355 * src/dir-ecos.c src/write.c: Increase highest_version _before_
356 assigning to new node, not after.
358 2002-01-27 David Woodhouse <dwmw2@cambridge.redhat.com>
360 * src/read.c (jffs2_read_inode_range): Deal correctly with
361 non-page-aligned read requests. We have to deal with the
362 case where we want to read from somewhere other than the
364 * src/jffs2.c (jffs2_fo_read): Use jffs2_read_inode_range
365 instead of jffs2_readpage.
367 2002-01-25 Jonathan Larmour <jlarmour@redhat.com>
369 * cdl/jffs2.cdl: We want CYGPKG_IO_FILEIO_INODE.
370 * src/dir-ecos.c (jffs2_symlink): Remove. eCos doesn't support symlinks.
371 (jffs2_mknod): Similar.
372 (jffs2_mkdir): Don't call d_instantiate - its a nop.
373 (jffs2_rename): Ditto.
374 * src/file-ecos.c (jffs2_commit_write): Don't set blocks.
375 * src/jffs2.c (jffs2_flash_writev): Rewrite to only write aligned
377 * src/jffs2port.h: Lots of decrufting.
378 * src/os-ecos.h: Ditto (a bit).
379 * src/readinode.c (jffs2_read_inode): Don't set blocks/blksize in inode.
380 * src/write.c (jffs2_new_inode): Ditto when __ECOS.
381 (jffs2_write_dnode): don't call writev with extra vectors
383 * src/super-ecos.c (jffs2_statfs): Remove - unused.
385 2002-01-25 David Woodhouse <dwmw2@cambridge.redhat.com>
387 * src/super-ecos.c: Cruftectomy.
388 * src/compr*.[ch] src/pushpull.h: Namespace cleanups merged from
389 mainstream sources. Bit push functions made inline.
390 * src/pushpull.c: Removed.
391 * cdl/jffs2.c: Remove reference to pushpull.c
392 * src/file-ecos.c: Cruftectomy. Lots of unused stuff here.
393 * src/jffs2.c src/jffs2port.h: Remove some functions from jffs2.c
394 which are no longer used, move some others to jffs2port.h as
395 inline functions so they don't pollute the namespace.
397 2002-01-24 Jonathan Larmour <jlarmour@redhat.com>
399 * tests/fileio1.c: Check in listdir that the number of dirents is
400 correct, taking into account existing files in case it's live.
402 * src/dir-ecos.c (jffs2_readdir): move to....
404 * src/jffs2.c (jffs2_fo_dirread): here. And fix the return code
405 in the process so it now works.
406 (filldir): Make inline and simpler.
407 * src/jffs2port.h: remove filldir related stuff.
409 2002-01-24 David Woodhouse <dwmw2@cambridge.redhat.com>
411 * src/dir-ecos.c: Cruftectomy. Remove most of the stuff that was
412 commented out. Remove jffs2_do_{create,link,unlink} to write.c
413 * src/write.c: Add jffs2_do_{create,link,unlink} as in mainline.
414 * src/nodelist.h: Prototypes for the above.
415 * src/jffs2port.h: Don't include <pkgconf/kernel.h>.
417 2002-01-23 Jonathan Larmour <jlarmour@redhat.com>
419 * src/jffs2.c (jffs2_mount): Allow multiple FSs, and integration
420 with flash block device.
421 (jffs2_flash_read): Use flash block device.
422 (jffs2_flash_erase): Ditto.
423 (jffs2_flash_write): Ditto.
424 (do_flash_init): Remove - now done by block device layer
425 * src/list.h: Remove and reimplement from scratch to avoid GPL.
426 * src/os-ecos.h: Keep flash block dev handle in superblock.
427 eCos does support obsoleting as it isn't NAND only.
428 * src/dir-ecos.c (jffs2_readdir): Return correct value on success.
429 Merge in changes mutatis mutandis from between v1.49 and v1.51 of
430 dir.c in main repository.
431 * cdl/jffs2.cdl: CYGPKG_MEMALLOC more accurately CYGINT_ISO_MALLOC.
432 Only jffs2.c needs to be in libextras.a
433 Requires Flash block devices as an alternative for hardcoding
434 the sector size, flash size and base address.
435 * src/super-ecos.c (jffs2_read_super): Use flash block device for
436 sector and flash sizes.
437 * tests/fileio1.c: mount using block device (defined by CDL).
438 No need to init here - done by flash block device layer.
440 2002-01-21 David Woodhouse <dwmw2@cambridge.redhat.com>
442 * src/read.c: Obtain inode lock around reading symlink target.
443 * src/dir-ecos.c: Fix the long-standing up() without down() in
444 jffs2_readdir() when only the '.' and '..' entries are read, from
445 v1.52 of master dir.c. Merge copyright date change from v1.50 - note
446 that the portability cleanups from v1.51 aren't yet merged.
447 * src/os-ecos.h: Add jffs2_can_mark_obsolete() and the macros
448 for getting at generic inode fields from a struct jffs2_inode_info*
449 * src/nodemgmt.c: Remove an #ifndef __ECOS and use
450 jffs2_can_mark_obsolete() instead.
451 * src/jffs2port.h: up() is cyg_drv_mutex_unlock() not _release()
452 * src/gc.c: Merge portability cleanups - get rid of a lot of
453 references to 'struct inode'. Also include the attempt at NAND
454 support in jffs2_garbage_collect_deletion_dirent().
456 2002-01-11 David Woodhouse <dwmw2@cambridge.redhat.com>
458 * src/jffs2port.h: Switch semaphore emulation to cyg_drv_mutex_t,
459 remove some kernel includes which seem gratuitous.
460 * cdl/jffs2.cdl: Require CYGPKG_MEMALLOC
461 * src/compr_zlib.c src/compr.c: Merge changes from mainline code
462 to make mkfs.jffs2 compile again.
464 2002-01-10 David Woodhouse <dwmw2@cambridge.redhat.com>
466 * src/jffs2.c: The 'mode' arg passed to jffs2_open() shouldn't
467 have been called 'mode'. It's 'oflags'. You have to make up a
468 mode for the newly-created file yourself.
469 * src/nodelist.h src/read.c: Fix jffs2_getlink() so it takes
470 portable arguments, not a dentry. Move it to read.c and symlink.c
472 * src/symlink-ecos.c: Removed.
473 * cdl/jffs2.cdl: Remove symlink-ecos.c
475 2002-01-09 David Woodhouse <dwmw2@cambridge.redhat.com>
477 * Import updated JFFS2 sources into eCos tree.
479 2000-08-28 Dominic Ostrowski (dominic.ostrowski@3glab.com)
481 * started on port of JFFS2 using ramfs as a template
483 //===========================================================================
484 //####ECOSGPLCOPYRIGHTBEGIN####
485 // -------------------------------------------
486 // This file is part of eCos, the Embedded Configurable Operating System.
487 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
488 // Copyright (C) 2004 eCosCentric Limited
490 // eCos is free software; you can redistribute it and/or modify it under
491 // the terms of the GNU General Public License as published by the Free
492 // Software Foundation; either version 2 or (at your option) any later version.
494 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
495 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
496 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
499 // You should have received a copy of the GNU General Public License along
500 // with eCos; if not, write to the Free Software Foundation, Inc.,
501 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
503 // As a special exception, if other files instantiate templates or use macros
504 // or inline functions from this file, or you compile this file and link it
505 // with other works to produce a work based on this file, this file does not
506 // by itself cause the resulting work to be covered by the GNU General Public
507 // License. However the source code for this file must still be made available
508 // in accordance with section (3) of the GNU General Public License.
510 // This exception does not invalidate any other reasons why a work based on
511 // this file might be covered by the GNU General Public License.
513 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
514 // at http://sources.redhat.com/ecos/ecos-license/
515 // -------------------------------------------
516 //####ECOSGPLCOPYRIGHTEND####
517 //===========================================================================