This round the patch is split into file-sized hunks. There actually seem to be kernel developers not manly enough to digest 6000+ lines of code at once. An I thought I was the only wimp around. Again, anyone giving comments in the last round is on Cc:. I'll try to respond to comments but the next round of patches may take a while longer, due to other responsibilities. Changed since take three: o one blank line between functions o depend on MTD o use LOGFS_BLOCKSHIFT in logfs_index o #define EOF to 512 o moved BUILD_BUG_ON() into an inline function o declare completion futility on the stack o 64bit nanoseconds time format o created logfs_compare_inode() o created struct logfs_device_ops o truncate() to zero sets embedded flag o unwrap logfs_memcpy() o add FS_READONLY flag to superblock o create blockdev_device_ops This one still needs some infrastructure and testing. o Fix data corruption bug. Unchanged: o convert #define's to enums. Afaics one of those has to be cast to u8, the other has to go through cpu_to_be64. I don't see how enums are an advantage under such circumstances and Thomas didn't seem to be sure either. o generic function for logfs_type() o generic helper for logfs_prepare_write() o removed EOF o error handling o move rootdir generation back to mkfs o replace kmap() with kmap_atomic() o document logfs_new_meta_inode() o Use KMEM_CACHE() helper for kmem_cache_create() o read object header first, then read or read&uncompress object data o shrink inodes to 200 bytes Won't happen (unless I get convinced to do otherwise): o lowercase LOGFS_SUPER and LOGFS_INODE These simply match the common pattern used is many Linux filesystems. o remove "extern" For structures, this keyword actually serves a purpose and makes sense. On the other hand, it is completely bogus for functions and I won't be bullied into adding bogus crud either. o Move fs/logfs/Locking to Documentation/ At least JFFS2 has such documentation in its own directory as well. I can see good arguments for either side and no strong consensus. While I ultimately just don't case, doing nothing is a good option in cases of great uncertainty. o change (void*) to "proper" cast Neither variant is much better than the other. I'm open for suggestions to completely remove the casts, though. o Change LOGFS_BUG() and LOGFS_BUG_ON() to inline functions These are macros for very much the same reasons BUG() and BUG_ON() are. Jörn -- A victorious army first wins and then seeks battle. -- Sun Tzu - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html