fs/unionfs/Makefile | 8 +
fs/unionfs/commonfops.c | 98 +++++++++----
fs/unionfs/copyup.c | 137 ++++++++++++------
fs/unionfs/debug.c | 361 +++++++++++++++++++++++++++++++++++++++++++++++
fs/unionfs/dentry.c | 3
fs/unionfs/file.c | 3
fs/unionfs/inode.c | 74 ++++++++--
fs/unionfs/odf.c | 3
fs/unionfs/rename.c | 43 +++++-
fs/unionfs/union.h | 80 +++++++++-
fs/unionfs/unlink.c | 8 +
fs/unionfs/xattr.c | 4 +
12 files changed, 715 insertions(+), 107 deletions(-)
New commits:
commit 71ae77f9e01b1f3f6f248600295d012fc7c0474a
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 17:15:54 2007 -0400
fixed some minor issues after applying erez's patches
commit 3c458843dd4349ed38f83c6bc5ca412e85ce467d
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 17:04:49 2007 -0400
whitespace cleanup
commit 5fa8b93371bba845c2a16cf461147baca5b37be4
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 17:03:20 2007 -0400
cleanup: eliminate wrapper function create_parents
Eliminate simple wrapper function create_parents which trivially called
create_parents_named with one more arg derived from the caller. Instead,
remove the wrapper, rename create_parents_named to create_parents, and make
everyone call create_parents directly. This clarifies the code a bit more
and saves a bit on stack space.
Conflicts:
fs/unionfs/inode.c
fs/unionfs/subr.c
commit 95dba60de607dd8d2cbef9e147e0e5116d56da96
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 16:52:03 2007 -0400
cleanup: eliminate wrapper function copyup_dentry
Eliminate simple wrapper function copyup_dentry which trivially called
copyup_named_dentry with 2 more args derived from the caller. Instead,
remove the wrapper, rename copyup_named_dentry to copyup_dentry, and make
everyone call copyup_dentry directly. This clarifies the code a bit more
and saves a bit on stack space.
Conflicts:
fs/unionfs/inode.c
fs/unionfs/rename.c
commit 5140dc5847ff205018593205576b8539629d8e12
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 03:07:37 2007 -0400
cleanup: rewrite do_delayed_copyup more cleanly and clearly
commit ace4846cef0dcca206364d11add98060e42b8ad9
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 02:18:44 2007 -0400
debugging: small fix to Makefile to correct #define typo
commit 02c189a486f4ae5ce7bdc78ce255e10f71c05d1b
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 01:56:08 2007 -0400
cleanup: remove unnecessary macro used in only one place
Remove the UNIONFS_TMPNAM_LEN macro and just use the actual length of the
string file name in question, which is more efficient (and correct).
commit a858290d396cd5aeec363f1e0ae8595effe92e70
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 01:53:12 2007 -0400
bug fix: don't revalidate dropped dentries
This fixes a harmless but annoying message that unionfs prints if a dropped
dentry is being revalidated, which could happen if you unlink open files.
commit b21dc483d70a6860dda0380dfae253717eb2f0c3
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 01:45:18 2007 -0400
bug fix: retry lookup for different silly-renamed files
When we have to copyup an open-but-unlinked file, we have to give it a
temporary name, similar to NFS's silly-renamed files. So we generate
temporary file names until we find one that doesn't exist, and use it. The
code had a bug where if the silly-renamed file name already existed, Unionfs
would oops upon copyup to that temp name.
commit c45774f0317460421b1bd76b6c296a9d9f5dd73b
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 01:41:04 2007 -0400
Documentation: better comments for copyup-related code
commit b736a6881f199d38364624cb1283dce5ce70144c
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 16:41:10 2007 -0400
Verify and maintain fanout invariants.
This somewhat long patch calls various invariant-checking (debugging)
functions in all places where the fanout invariants should hold. The three
invariant-checking functions, __unionfs_check_{inode,dentry,file}, perform
exhaustive sanity checking on the fan-out of various Unionfs objects. We
check that no lower objects exist outside the start/end branch range; that
all objects within are non-NULL (with some allowed exceptions); that for
every lower file there's a lower dentry+inode; that the start/end ranges
match for all corresponding lower objects; that open files/symlinks have
only one lower objects, but directories can have several; and more.
The rest of this patch actually fixes many places where these invariants did
not hold, which could lead to bugs or corruptions under heavy loads,
multi-threaded workloads, dynamic branch-management, and mmap operations.
Most of the bugs related to actions involving copyups and whiteouts. With
these fixes, the entire Unionfs regression suite passes without a single
invariant violated.
Conflicts:
fs/unionfs/commonfops.c
fs/unionfs/file.c
fs/unionfs/inode.c
fs/unionfs/unlink.c
commit 2ba07d890a159c895a622c2dc5dfef1216cc1c85
Author: Erez Zadok <[EMAIL PROTECTED](none)>
Date: Fri May 18 01:31:14 2007 -0400
Post-copyup helper functions
Two functions which are very useful to execute common actions needed after a
copy-up had taken place.
commit 07ec5e10b8b6e010ca87d0538b7f088f5c7e0243
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Sat May 19 16:27:25 2007 -0400
Introduce compile-time debugging support to Unionfs
Similar to other file systems, to turn on debugging, one is asked to change
the Makefile slightly. The vast majority of the debugging utility functions
are in debug.c. They are useful for developers and users to report to
developers. The main code has some very useful hooks left behind that are
non-intrusive and cleaner (i.e., no "ifdef DEBUG" clutter).
Conflicts:
fs/unionfs/union.h
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs