2005-08-03 Andrew Lunn * tests/jffs2_1.c: Include to stop compiler warning. 2005-07-30 Andrew Lunn * Merge to public MTD 2005-02-25 Andrew Lunn * src/fs-ecos.c (jffs2_truncate_file): Correctly truncate a file when opening it with O_TRUNC. Test case from Knud Woehler. 2005-02-08 Estelle HAMMACHE * src/fs-ecos.c * src/dir-ecos.c: Fixed the sign of the return codes in various places. iput the inode only after we have finished with it etc. 2005-01-22 Andrew Lunn * Merge from public MTD. 2004-11-14 Per Hedblom Andrew Lunn * src/os-ecos.h: Added gc tread support * src/fs-ecos.c: Removed some includes * cdl/jffs2.cdl: Added gc thread support * tests/jffs2_3.c: New text to exersise the garbage collect code. 2004-12-13 John Dallaway * tests/fileio1.c: Rename to jffs2_1.c. eCos test names should be unique. * tests/fseek1.c: Rename to jffs2_2.c. * cdl/jffs2.cdl: Build the renamed tests. 2004-12-10 Per Hedblom * src/fs-ecos.c: Use filesystem locking not file locking otherwise the node cache can be corrupted by multiple operations on different files at the same time. 2004-11-11 Andrew Lunn * Merge from public MTD. 2004-11-11 Andrew Lunn * src/build.c: Removed Oyvind Harboe's patch from 2004-04-19 since it was rejected upstream. 2004-10-20 Per Hedblom * src/fs-ecos.c (jffs2_open): Call iput on dir node if jffs2_create fails. * src/fs-ecos.c (jffs2_umount): use jffs2_free_full_dirent instead of free. 2004-10-07 Knud Woehler * src/fs-ecos.c (find_entry): jffs2_lookup may return error codes. Check added. 2004-09-16 Dirk Eibach 2004-09-19 Andrew Lunn * cdl/jffs2.cdl: Fixed outdated definitions for compression options. * src/fs-ecos.c: Added missing calls for jffs2_compressors_init() and jffs2_compressors_exit() 2004-08-13 Andrew Lunn * src/compr.h: Committed this file which if forgot yesterday. 2004-08-12 Andrew Lunn Gary Thomas * Merge from public MTD. 2004-04-19 Oyvind Harboe * src/build.c: JFFS2 can now be used as a write-once, read many mode for really small flash disks, e.g. configuration parameters. 2004-04-21 Gary Thomas * src/fs-ecos.c: Merge from public MTD - verify file position after each operation (safety check). 2004-04-06 Andrew Lunn * src/fs-ecos.c (jffs2_extend_file): Fix creation of hole inode's * src/fs-ecos.c (jffs2_fo_lseek): Allow seeking past EOF. * tests/fseek1.c (main): fseek and simple test of a hole in a file * cdl/jffs2.cdl: Added new test program fseek1. 2004-03-31 David Woodhouse * src/fs-ecos.c (jffs2_fo_write): Set ri.isize so that non-append writes don't truncate the file. 2004-03-03 Thomas Koeller * src/fs-ecos.c: Make JFFS2 honor O_TRUNC flag (again) when opening files with read Access. 2004-03-17 Oyvind Harboe * src/fs-ecos.c: With CYGOPT_FS_JFFS2_WRITE=1, file creation failed. The problem was introduced in fs-ecos.c 1.20 2004-03-11 Oyvind Harboe * src/fs-ecos.c: Fixed umount memory leak. root->jffs2_i.dents where not freed. 2004-02-20 Vincent Catros * src/fs-ecos.c : (jffs2_find) Policy to skip path separator is no longer "if '/' then skip" but "while '/' then skip" allowing multi '/' separators (i.e : /tmp////foo). (find_entry) Policy to detect end of path is no longer "if '\0' then end_of_path" but "while '/' skip it and then if '\0' then end_of_path" allowing path terminated with any number of '/' (i.e : chdir(/tmp///)). 2004-03-03 Thomas Koeller * src/fs-ecos.c: Make JFFS2 honor O_TRUNC flag when opening files /w read access. 2004-02-17 David Woodhouse * src/fs-ecos.c: Don't re-initialise the already-locked f->sem. It makes eCos unhappy. 2004-01-27 David Woodhouse * src/write.c: Fix bug noted by Howard Gray; dirents belong to, and should dirty, the _parent_inode, not the child (which may be zero in the case of an unlink). 2004-01-09 Thomas Koeller * src/fs-ecos.c: Fixed inode reference counting in jffs2_ops_link(). 2004-01-05 Thomas Koeller * cdl/jffs2.cdl: Re-added CYGPKG_FS_JFFS2_CFLAGS_REMOVE that had been removed by previous change. 2003-11-26 David Woodhouse JFFS2 cleanup and import of newer code. Remove last vestiges of Linuxisms such as 'struct inode' from the core code, leaving eCos with no excuse, and renaming the eCos 'struct inode' to make that point. Fix i_count handling throughout. Clean up remaining Linuxisms such as 'struct qstr' to the point where jffs2port.h can be removed. Add skeleton for background garbage-collect thread. Fix compression so that it's actually called, and even with the right pointers. Turn on -Werror again. Zero tolerance is a good thing. Make the i_mode conversion functions non-inline to avoid warnings. Fix namespace pollution (of all but ^jffs2_* at least). Move physical flash I/O functions into separate file flashio.c for relatively easy substitution. Various other cruftectomy. 2003-11-25 Andrew Lunn * src/fs-ecos.c: ARM gcc 3.2.3 is also broken. Complain with any ARM gcc 3.2 compiler. 2003-11-21 Thomas Koeller * cdl/jffs2.cdl: Do not require zlib package if no compression configured. 2003-11-20 Thomas Koeller * cdl/jffs2.cdl: * src/malloc-ecos.c: * src/fs-ecos.c: Allocate jffs2_raw_node_ref structs from pool or malloc depending on a CDL configuration. 2003-11-20 David Woodhouse * Rearrangement of the compression code into a cleaner API which can be disabled under control from CDL. 2003-10-14 Thomas Koeller * src/os-ecos.h: Made definition of CONFIG_JFFS2_FS_DEBUG conditional, so it can be overwritten by a -D compiler option. 2003-09-23 Thomas Koeller * src/fs-ecos.c: Another umount() fix. 2003-09-23 Andrew Lunn * src/fs-ecos.c: Added test to detect known broken ARM compiler 2003-09-23 Thomas Koeller * src/fs-ecos.c: Fixed broken hard link creation. 2003-09-23 Andrew Lunn * src/fs-ecos.c: Minor optimization of previous patch. 2003-09-21 Thomas Koeller Andrew Lunn * src/fs-ecos.c: Do not decrement mount count for unsuccessful umount attempts. 2003-09-19 Thomas Koeller * src/fs-ecos.c: Another inode number fix. 2003-09-18 Thomas Koeller * src/fs-ecos.c: Inode number returned by stat() was bogus. 2003-07-27 Andrew Lunn * src/os-ecos.h: Added new #defines require for the recent jffs2 import. 2003-07-27 Michael Checky * src/fs-ecos.c: Changed the return error code to be negative as expected by jffs2_flash_read() and jffs2_flash_write(). 2003-04-23 Bob Koninckx * src/fs-ecos.c: mtab -> cyg_mtab. Ditto cyg_mtab_end. 2003-03-25 Thomas Koeller * src/fs-ecos.c Fixed segmentation fault when unmounting file system. 2003-02-24 Jonathan Larmour * cdl/jffs2.cdl: Fix doc link. 2003-02-05 Jonathan Larmour * cdl/jffs2.cdl: Remove unused flash geometry CDL options. 2003-02-04 Gary Thomas on behalf of 2003-02-04 David Woodhouse * src/write.c: * src/scan.c: * src/readinode.c: * src/read.c: * src/pushpull.h: * src/os-ecos.h: * src/nodemgmt.c: * src/nodelist.h: * src/nodelist.c: * src/malloc-ecos.c: * src/jffs2port.h: * src/gc.c: * src/file-ecos.c: * src/erase.c: * src/dir-ecos.c: * src/compr_zlib.c: * src/compr_rubin.c: * src/compr_rtime.c: * src/compr.c: * src/build.c: * cdl/jffs2.cdl: Update to latest public JFFS2 codebase. * src/list.h: * src/jffs2_fs_sb.h: * src/jffs2_fs_i.h: * src/jffs2.h: * src/jffs2.c: * src/crc32.h: * src/background.c: Removed/renamed file(s). * src/fs-ecos.c: * include/linux/jffs2_fs_sb.h: * include/linux/jffs2_fs_i.h: * include/linux/jffs2.h: New file(s). 2002-12-06 Andrew Lunn * cdl/jffs2.cdl: Implements the CYGINT_IO_FILEIO_FS interface. 2002-10-11 Andrew Lunn * src/crc32.h (crc32): Use the CRC package for crc calculation * tests/romfileio1.c (main): Pass the name of the device to mount 2002-05-20 Jonathan Larmour * src/LICENCE: New file. Contains license for JFFS2, now GPL+exception. * src/background.c: Point at LICENSE file instead of existing text. * src/build.c: Ditto. * src/compr.c: Ditto. * src/compr_rtime.c: Ditto. * src/compr_rubin.c: Ditto. * src/compr_zlib.c: Ditto. * src/dir-ecos.c: Ditto. * src/erase.c: Ditto. * src/file-ecos.c: Ditto. * src/gc.c: Ditto. * src/jffs2.h: Ditto. * src/list.h: Ditto. * src/malloc-ecos.c: Ditto. * src/nodelist.c: Ditto. * src/nodelist.h: Ditto. * src/nodemgmt.c: Ditto. * src/os-ecos.h: Ditto. * src/pushpull.h: Ditto. * src/read.c: Ditto. * src/readinode.c: Ditto. * src/scan.c: Ditto. * src/write.c: Ditto. 2002-01-28 David Woodhouse * src/super-ecos.c: Removed. * src/jffs2.c: Merge jffs2_write_super() and jffs2_put_super() into the routines from which they were called, put jffs2_read_super() in as a static function with a view to doing same RSN. * src/jffs2port.h: Remove prototypes of functions that died. * cdl/jffs2.cdl: Remove super-ecos.c * src/dir-ecos.c src/write.c: Increase highest_version _before_ assigning to new node, not after. 2002-01-27 David Woodhouse * src/read.c (jffs2_read_inode_range): Deal correctly with non-page-aligned read requests. We have to deal with the case where we want to read from somewhere other than the beginning of a frag. * src/jffs2.c (jffs2_fo_read): Use jffs2_read_inode_range instead of jffs2_readpage. 2002-01-25 Jonathan Larmour * cdl/jffs2.cdl: We want CYGPKG_IO_FILEIO_INODE. * src/dir-ecos.c (jffs2_symlink): Remove. eCos doesn't support symlinks. (jffs2_mknod): Similar. (jffs2_mkdir): Don't call d_instantiate - its a nop. (jffs2_rename): Ditto. * src/file-ecos.c (jffs2_commit_write): Don't set blocks. * src/jffs2.c (jffs2_flash_writev): Rewrite to only write aligned quantities to flash. * src/jffs2port.h: Lots of decrufting. * src/os-ecos.h: Ditto (a bit). * src/readinode.c (jffs2_read_inode): Don't set blocks/blksize in inode. * src/write.c (jffs2_new_inode): Ditto when __ECOS. (jffs2_write_dnode): don't call writev with extra vectors unnecessarily. * src/super-ecos.c (jffs2_statfs): Remove - unused. 2002-01-25 David Woodhouse * src/super-ecos.c: Cruftectomy. * src/compr*.[ch] src/pushpull.h: Namespace cleanups merged from mainstream sources. Bit push functions made inline. * src/pushpull.c: Removed. * cdl/jffs2.c: Remove reference to pushpull.c * src/file-ecos.c: Cruftectomy. Lots of unused stuff here. * src/jffs2.c src/jffs2port.h: Remove some functions from jffs2.c which are no longer used, move some others to jffs2port.h as inline functions so they don't pollute the namespace. 2002-01-24 Jonathan Larmour * tests/fileio1.c: Check in listdir that the number of dirents is correct, taking into account existing files in case it's live. * src/dir-ecos.c (jffs2_readdir): move to.... * src/jffs2.c (jffs2_fo_dirread): here. And fix the return code in the process so it now works. (filldir): Make inline and simpler. * src/jffs2port.h: remove filldir related stuff. 2002-01-24 David Woodhouse * src/dir-ecos.c: Cruftectomy. Remove most of the stuff that was commented out. Remove jffs2_do_{create,link,unlink} to write.c * src/write.c: Add jffs2_do_{create,link,unlink} as in mainline. * src/nodelist.h: Prototypes for the above. * src/jffs2port.h: Don't include . 2002-01-23 Jonathan Larmour * src/jffs2.c (jffs2_mount): Allow multiple FSs, and integration with flash block device. (jffs2_flash_read): Use flash block device. (jffs2_flash_erase): Ditto. (jffs2_flash_write): Ditto. (do_flash_init): Remove - now done by block device layer * src/list.h: Remove and reimplement from scratch to avoid GPL. * src/os-ecos.h: Keep flash block dev handle in superblock. eCos does support obsoleting as it isn't NAND only. * src/dir-ecos.c (jffs2_readdir): Return correct value on success. Merge in changes mutatis mutandis from between v1.49 and v1.51 of dir.c in main repository. * cdl/jffs2.cdl: CYGPKG_MEMALLOC more accurately CYGINT_ISO_MALLOC. Only jffs2.c needs to be in libextras.a Requires Flash block devices as an alternative for hardcoding the sector size, flash size and base address. * src/super-ecos.c (jffs2_read_super): Use flash block device for sector and flash sizes. * tests/fileio1.c: mount using block device (defined by CDL). No need to init here - done by flash block device layer. 2002-01-21 David Woodhouse * src/read.c: Obtain inode lock around reading symlink target. * src/dir-ecos.c: Fix the long-standing up() without down() in jffs2_readdir() when only the '.' and '..' entries are read, from v1.52 of master dir.c. Merge copyright date change from v1.50 - note that the portability cleanups from v1.51 aren't yet merged. * src/os-ecos.h: Add jffs2_can_mark_obsolete() and the macros for getting at generic inode fields from a struct jffs2_inode_info* * src/nodemgmt.c: Remove an #ifndef __ECOS and use jffs2_can_mark_obsolete() instead. * src/jffs2port.h: up() is cyg_drv_mutex_unlock() not _release() * src/gc.c: Merge portability cleanups - get rid of a lot of references to 'struct inode'. Also include the attempt at NAND support in jffs2_garbage_collect_deletion_dirent(). 2002-01-11 David Woodhouse * src/jffs2port.h: Switch semaphore emulation to cyg_drv_mutex_t, remove some kernel includes which seem gratuitous. * cdl/jffs2.cdl: Require CYGPKG_MEMALLOC * src/compr_zlib.c src/compr.c: Merge changes from mainline code to make mkfs.jffs2 compile again. 2002-01-10 David Woodhouse * src/jffs2.c: The 'mode' arg passed to jffs2_open() shouldn't have been called 'mode'. It's 'oflags'. You have to make up a mode for the newly-created file yourself. * src/nodelist.h src/read.c: Fix jffs2_getlink() so it takes portable arguments, not a dentry. Move it to read.c and symlink.c becomes obsolete. * src/symlink-ecos.c: Removed. * cdl/jffs2.cdl: Remove symlink-ecos.c 2002-01-09 David Woodhouse * Import updated JFFS2 sources into eCos tree. 2000-08-28 Dominic Ostrowski (dominic.ostrowski@3glab.com) * started on port of JFFS2 using ramfs as a template //=========================================================================== //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. // Copyright (C) 2004 eCosCentric Limited // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2 or (at your option) any later version. // // eCos is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with eCos; if not, write to the Free Software Foundation, Inc., // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. // // As a special exception, if other files instantiate templates or use macros // or inline functions from this file, or you compile this file and link it // with other works to produce a work based on this file, this file does not // by itself cause the resulting work to be covered by the GNU General Public // License. However the source code for this file must still be made available // in accordance with section (3) of the GNU General Public License. // // This exception does not invalidate any other reasons why a work based on // this file might be covered by the GNU General Public License. // // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. // at http://sources.redhat.com/ecos/ecos-license/ // ------------------------------------------- //####ECOSGPLCOPYRIGHTEND#### //===========================================================================