Summary of changes for 2.3.25 to support stackable file systems and lofs. (Note: some of my previous patches had been incorporated in 2.3.17.) (1) Created a new header file include/linux/dcache_func.h. This header file contains dcache-related definitions (mostly static inlines) used by my stacking code and by fs/namei.c. Ion and I tried to put these definitions in fs.h and dcache.h to no avail. We would have to make lots of changes to fs.h or dcache.h and other .c files just to get these few definitions in. In the interest of simplicity and minimizing kernel changes, we opted for a new, small header file. This header file is included in fs/namei.c because everything in dcache_func.h was taken from fs/namei.c. And of course, these static inlines are useful for my stacking code. If you don't like the name dcache_func.h, maybe you can suggest a better name. Maybe namei.h? If you don't like having a new header file, let me know what you'd prefer instead and I'll work on it, even if it means making more changes to fs.h, namei.c, and dcache.h... (2) Inline functions moved from linux/{fs,mm}/*.c to header files so they can be included in the same original source code as well as stackable file systems: check_parent macro (fs/namei.c -> include/linux/dcache_func.h) lock_parent (fs/namei.c -> include/linux/dcache_func.h) get_parent (fs/namei.c -> include/linux/dcache_func.h) unlock_dir (fs/namei.c -> include/linux/dcache_func.h) double_lock (fs/namei.c -> include/linux/dcache_func.h) double_unlock (fs/namei.c -> include/linux/dcache_func.h) (3) Added to include/linux/fs.h an extern definition to default_llseek. (4) include/linux/mm.h: also added extern definitions for filemap_swapout filemap_swapin filemap_sync filemap_nopage so they can be included in other code (esp. stackable f/s modules). (5) added EXPORT_SYMBOL declarations in kernel/ksyms.c for functions which I now exposed to (stackable f/s) modules: EXPORT_SYMBOL(___wait_on_page); EXPORT_SYMBOL(add_to_page_cache); EXPORT_SYMBOL(default_llseek); EXPORT_SYMBOL(filemap_nopage); EXPORT_SYMBOL(filemap_swapout); EXPORT_SYMBOL(filemap_sync); EXPORT_SYMBOL(remove_inode_page); EXPORT_SYMBOL(swap_free); EXPORT_SYMBOL(nr_lru_pages); EXPORT_SYMBOL(console_loglevel); (6) mm/filemap.c: make the function filemap_nopage non-static, so it can be called from other places. This was not an inline function so there's no performance impact. ditto for filemap_sync. (7) Documentation/filesystes/vfs.txt: updated file, spell checked, corrected, and expanded. (8) LOOPBACK FILE SYSTEM: added or updated the following: Documentation/Configure.help: help for building lofs Documentation/filesystems/00-INDEX: describe stackable-fs.txt entry. Documentation/filesystems/stackable-fs.txt: general help for lofs and other stackable file systems that may follow. fs/Config.in: if experimental statement to build lofs fs/Makefile: if section for building lofs fs/filesystems.c: initialize lofs file system fs/lofs/: Makefile, header, and sources for lofs.