• David Woodhouse's avatar
    JFFS2 update. · f662cf7a
    David Woodhouse authored
    Various bugfixes
     -- deadlock in prepare_write() on extension of file fixed.
     -- corruption when reading a page where a multi-page hole ends fixed.
     -- oops on unlink of bad inodes fixed.
     -- allow bi-endian operation; mounting of non-host-endian file system is now possible.
    
    Optimisations
     -- switch to rbtrees for the inode fragment list. O(log n) insertion and lookup now.
     -- avoid checking all data crcs and building fragment trees at scan time. Do it later in GC.
     -- use 'point' method if available to use a pointer directly into the flash chip during
    	scan, rather than always using memcpy into RAM first.
     -- start to track node 'pristine' status, for later use in GC optimisation -- we'll be
    	able to copy those nodes intact without having to read them, decompress and 
    	recompress their payload, etc. Or indeed having to read_inode() their inode. 
     -- fix ordering of work done from kupdated. We now erase a block, mark it free and stick 
    	it on the appropriate list, and go on to the next one. Before, we erased _all_ the
    	pending blocks before marking any of them free, while everyone waited for us.
    f662cf7a
readinode.c 17 KB