Here are several fixes for issues that Dmitriy found, and also several fixlets for non-compiling filesystems. These only caused one trivial down-stack reject, so I won't worry about sending you the fix for that. These have had some testing with various filesystems, block sizes, and journal modes with fsx-linux, fsstress and swapping-kbuilds. -- Dmitriy noticed some weird code I had in __page_symlink that is wrong. Fixes: fs-introduce-write_begin-write_end-and-perform_write-aops.patch Signed-off-by: Nick Piggin <npiggin@xxxxxxx> Index: linux-2.6/fs/namei.c =================================================================== --- linux-2.6.orig/fs/namei.c +++ linux-2.6/fs/namei.c @@ -2702,21 +2702,20 @@ int __page_symlink(struct inode *inode, char *kaddr; retry: - err = pagecache_write_begin(NULL, mapping, 0, PAGE_CACHE_SIZE, + err = pagecache_write_begin(NULL, mapping, 0, len-1, AOP_FLAG_UNINTERRUPTIBLE, &page, &fsdata); if (err) goto fail; kaddr = kmap_atomic(page, KM_USER0); memcpy(kaddr, symname, len-1); - memset(kaddr+len-1, 0, PAGE_CACHE_SIZE-(len-1)); kunmap_atomic(kaddr, KM_USER0); - err = pagecache_write_end(NULL, mapping, 0, PAGE_CACHE_SIZE, PAGE_CACHE_SIZE, + err = pagecache_write_end(NULL, mapping, 0, len-1, len-1, page, fsdata); if (err < 0) goto fail; - if (err < PAGE_CACHE_SIZE) + if (err < len-1) goto retry; mark_inode_dirty(inode); - 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