The following is a series of patchsets related to Unionfs. It includes fixes to a few races discovered since moving to vm_ops->fault, and one small optimiztion (skip copyup for when a file is opened for writing but no writing takes place). These patches were tested (where appropriate) on v2.6.25-4569-gb69d398, MM (mmotm 2008-04-19-01-17), as well as the backports to 2.6.{25,24,23,22,21,20,19,18,9} on ext2/3/4, xfs (limited testing -- xfs was oopsing a lot), reiserfs, nfs2/3/4, jffs2, ramfs, tmpfs, cramfs, and squashfs (where available). Also tested with LTP-full-20080229 and with a continuous parallel kernel compile (while forcing cache flushing, manipulating lower branches, etc.). See http://unionfs.filesystems.org/ to download back-ported unionfs code. Please pull from the 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/ezk/unionfs.git to receive the following: Erez Zadok (12): Unionfs: minor code cleanups Unionfs: prevent races in unionfs_fault Unionfs: copy lower times in fsync/fasync only when needed Unionfs: lock inode around calls to notify_change() Unionfs: stop as soon as first writeable branch is found Unionfs: don't dereference dentry without lower branches in d_release Unionfs: set append offset correctly for copied-up files Unionfs: copyup only if file is being written to Unionfs: reorganize file_revalidate for un/locking callers Unionfs: maintain one-open-file invariant for non-directories Unionfs: set lower file to NULL in file_release Unionfs: lock parent dentry branch config in write commonfops.c | 248 ++++++++++++++++++++++++++++++++++++++--------------------- copyup.c | 2 dentry.c | 4 file.c | 32 +++---- inode.c | 43 ++++------ mmap.c | 21 +++- union.h | 2 7 files changed, 216 insertions(+), 136 deletions(-) Thanks. --- Erez Zadok ezk@xxxxxxxxxxxxx -- 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