ia64/linux-2.6.18-xen.hg

diff fs/jffs2/TODO @ 0:831230e53067

Import 2.6.18 from kernel.org tarball.
author Ian Campbell <ian.campbell@xensource.com>
date Wed Apr 11 14:15:44 2007 +0100 (2007-04-11)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/fs/jffs2/TODO	Wed Apr 11 14:15:44 2007 +0100
     1.3 @@ -0,0 +1,40 @@
     1.4 +$Id: TODO,v 1.18 2005/09/22 11:24:56 dedekind Exp $
     1.5 +
     1.6 + - support asynchronous operation -- add a per-fs 'reserved_space' count,
     1.7 +   let each outstanding write reserve the _maximum_ amount of physical
     1.8 +   space it could take. Let GC flush the outstanding writes because the
     1.9 +   reservations will necessarily be pessimistic. With this we could even
    1.10 +   do shared writable mmap, if we can have a fs hook for do_wp_page() to
    1.11 +   make the reservation.
    1.12 + - disable compression in commit_write()?
    1.13 + - fine-tune the allocation / GC thresholds
    1.14 + - chattr support - turning on/off and tuning compression per-inode
    1.15 + - checkpointing (do we need this? scan is quite fast)
    1.16 + - make the scan code populate real inodes so read_inode just after 
    1.17 +	mount doesn't have to read the flash twice for large files.
    1.18 +	Make this a per-inode option, changable with chattr, so you can
    1.19 +	decide which inodes should be in-core immediately after mount.
    1.20 + - test, test, test
    1.21 +
    1.22 + - NAND flash support:
    1.23 +	- almost done :)
    1.24 +	- use bad block check instead of the hardwired byte check
    1.25 +
    1.26 + - Optimisations:
    1.27 +   - Split writes so they go to two separate blocks rather than just c->nextblock.
    1.28 +	By writing _new_ nodes to one block, and garbage-collected REF_PRISTINE
    1.29 +	nodes to a different one, we can separate clean nodes from those which
    1.30 +	are likely to become dirty, and end up with blocks which are each far
    1.31 +	closer to 100% or 0% clean, hence speeding up later GC progress dramatically.
    1.32 +   - Stop keeping name in-core with struct jffs2_full_dirent. If we keep the hash in 
    1.33 +     the full dirent, we only need to go to the flash in lookup() when we think we've
    1.34 +     got a match, and in readdir(). 
    1.35 +   - Doubly-linked next_in_ino list to allow us to free obsoleted raw_node_refs immediately?
    1.36 +   - Remove totlen from jffs2_raw_node_ref? Need to have totlen passed into
    1.37 +	jffs2_mark_node_obsolete(). Can all callers work it out?
    1.38 +   - Remove size from jffs2_raw_node_frag. 
    1.39 +
    1.40 +dedekind:
    1.41 +1. __jffs2_flush_wbuf() has a strange 'pad' parameter. Eliminate.
    1.42 +2. get_sb()->build_fs()->scan() path... Why get_sb() removes scan()'s crap in
    1.43 +   case of failure? scan() does not clean everything. Fix.