Documentation/filesystems/unionfs/concepts.txt |  126 ++++++-
 Documentation/filesystems/unionfs/issues.txt   |   50 +--
 Documentation/filesystems/unionfs/usage.txt    |   31 ++-
 fs/Kconfig                                     |    6 +
 fs/ecryptfs/dentry.c                           |    2 +-
 fs/ecryptfs/inode.c                            |   16 +-
 fs/ecryptfs/main.c                             |    2 +-
 fs/exportfs/expfs.c                            |    5 +-
 fs/namei.c                                     |    7 +-
 fs/stack.c                                     |   21 +-
 fs/unionfs/Makefile                            |   22 +-
 fs/unionfs/commonfops.c                        |  306 ++++++++-------
 fs/unionfs/copyup.c                            |  159 +++++---
 fs/unionfs/debug.c                             |  501 +++++++++++++++---------
 fs/unionfs/dentry.c                            |  226 +++++++++--
 fs/unionfs/dirfops.c                           |   38 +-
 fs/unionfs/dirhelper.c                         |   16 +-
 fs/unionfs/export.c                            |   23 +-
 fs/unionfs/fanout.h                            |  109 +++++-
 fs/unionfs/file.c                              |  168 +++++++--
 fs/unionfs/inode.c                             |  336 ++++++++--------
 fs/unionfs/lookup.c                            |  236 ++++++++----
 fs/unionfs/main.c                              |  236 ++++++-----
 fs/unionfs/mmap.c                              |  377 ++++++++----------
 fs/unionfs/odf.c                               |    2 +-
 fs/unionfs/rdstate.c                           |   24 +-
 fs/unionfs/rename.c                            |   45 ++-
 fs/unionfs/sioq.c                              |   18 +-
 fs/unionfs/sioq.h                              |   18 +-
 fs/unionfs/subr.c                              |   43 +--
 fs/unionfs/super.c                             |  166 +++++----
 fs/unionfs/union.h                             |  252 +++++++-----
 fs/unionfs/unlink.c                            |   30 ++-
 fs/unionfs/xattr.c                             |   48 +--
 include/linux/exportfs.h                       |    2 +
 include/linux/fs_stack.h                       |   13 +-
 include/linux/mm.h                             |    1 +
 include/linux/namei.h                          |    8 -
 include/linux/union_fs.h                       |    7 -
 39 files changed, 2237 insertions(+), 1459 deletions(-)

New commits:
commit 8ba32d37fde13b9464651f16dcf67bb04e5bbdbb
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 18:45:46 2007 -0500

    patch unionfs-port-odf-to-2-6-24-rc2.patch

commit 8eca438919d463e076c4e703999f87a65b67542a
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.9
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit de9ad91238152c44c63f08d67d0372d5cd214715
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:04 2007 -0500

    Unionfs: move debugging checks inside locks
    
    This is to ensure that the objects we want to check aren't being destroyed
    or changed by another thread.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit c94cac1c17b8e04a529115138024a7367e758e05
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:06 2007 -0500

    Unionfs: fold do_readpage into unionfs_readpage
    
    Simplify the code and reduce stack pressure a bit.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e261cf017962982218dacc5a3e24b1068cef59f2
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:08 2007 -0500

    Unionfs: remove unnecessary lower atime updates
    
    No need for this because our readpage calls vfs_read on the lower objects,
    which would update the atime as/if needed.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 09320cd9457cbaf7a06269f6bf6c004541665963
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:09 2007 -0500

    Unionfs: debugging updates
    
    Don't perform dentry+inode checks unless both are valid.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 00ab56e31ecd0ff68a7043d639377e9062b371bf
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:10 2007 -0500

    Unionfs: clear partial read in readpage
    
    Signed-off-by: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2d131a2ffc6f0246a9b6c4a67560035b03bb3ad3
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:11 2007 -0500

    Unionfs: writepage updates
    
    Don't set/reset the PageUptodate flag on our page.  Call flush_dcache_page
    on the lower page after copy_highpage, and set it uptodate.  Call
    set_page_dirty right before clear_page_dirty_for_io.
    
    CC: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 5161fbb173e5abbd7781b0de5ec2d16461ea4958
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:12 2007 -0500

    Unionfs: update cache-coherency detection heuristics
    
    Use a small delay to reduce the number of times unionfs has to detect
    changed mtime's/ctime's, and also reduce the potential for false positives.
    See Documentation/filesystems/unionfs/concepts.txt for a detailed
    discussion.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit cb16f3614f0f0edb3b69433b6ad872fbb6a6f6b5
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:42:10 2007 -0500

    Unionfs: use i_size wrappers
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit cd2617516634c6935d3caee724beb494befb72e6
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:14 2007 -0500

    Unionfs: flush and release updates
    
    Remove the totalopens counter which was intended to reduce unnecessary
    processing of d_deleted dentries.  Move that processing from file_release to
    flush.
    
    Cc: Hugh Dickins <[EMAIL PROTECTED]>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0d35eb3bafc7dfc5683cd0d68af268fa584cab55
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.8
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e86a66e7378c4140a4d96dbc140d9e70597b9c5d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:16 2007 -0500

    Unionfs/VFS: no need to export 2 symbols in security/security.c
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 60f319ba4ef56b0787b0364368ac27686e31e453
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:38:17 2007 -0500

    Unionfs: don't printk an error if it's due to common copyup
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 962e3e80d132e9ed976ba2af8f3936cf745fd3f4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:19 2007 -0500

    Unionfs: don't bother validating inode if it has no lower branches
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 41b729e41b226e1edb23d1fd4cbaf2049e99ba7d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:20 2007 -0500

    Unionfs: avoid a deadlock during branch-management on a pivot_root'ed union
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    Acked-by: Herton Ronaldo Krzesinski <[EMAIL PROTECTED]>

commit 3d27b0b405707faff0ca91050e333fa47b3f3228
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:21 2007 -0500

    Unionfs: mmap updates
    
    Rewrite unionfs_writepage to minimize dependence on AOP_WRITEPAGE_ACTIVEATE,
    handle memory pressure better, and update documentation.  Remove
    unionfs_sync_page because it's not needed.
    
    CC: Hugh Dickins <[EMAIL PROTECTED]>
    CC: Pekka Enberg <[EMAIL PROTECTED]>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d4ee61297c9232342178851751c778d0f3e55e7a
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:23 2007 -0500

    Unionfs: update usage.txt documention
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 121aced7e884212e883bbe810581c0f5ec5a060e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:24 2007 -0500

    Unionfs: cleanup permission checking code
    
    Use vfs helpers and avoid redundant checks performed by the VFS already.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 1f382506be5229aac6516eb4a651bf1c5b4e2583
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:36:24 2007 -0500

    Unionfs: delete whiteouts in sticky directories
    
    This is needed to maintain Unix semantics.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 258bc46365104f6480c29560ec7e37033f19b74e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:34:47 2007 -0500

    Unionfs: revert fs/Kconfig text update
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 32cb5f8107c658b67a08eb457154d693ec596aa4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.7
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f846b3517a78414021a02142f8926ffdb181bf9c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:33:39 2007 -0500

    Unionfs: remove obsolete #define and comment
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d1abdd942bc7614ae51a013719c83d2e0b91909e
Author: Jeff Layton <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:29 2007 -0500

    Unionfs: fix unionfs_setattr to handle ATTR_KILL_S*ID
    
    Don't allow unionfs_setattr to trip the BUG() in notify_change. Clear
    ATTR_MODE if the either ATTR_KILL_S*ID is set. This also allows the
    lower filesystem to interpret these bits in its own way.
    
    Signed-off-by: Jeff Layton <[EMAIL PROTECTED]>
    Cc: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Cc: Christoph Hellwig <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 74d86d7829dd28288a1a9e64284ce0f35d475ff9
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:30 2007 -0500

    Unionfs: remove for_writepages nfs workaround
    
    This is no longer necessary since struct writeback_control no longer has a
    fs_private field which lower file systems (esp. nfs) use.  Plus, unionfs now
    defines its own ->writepages method.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit db9c6c29b57768f286eef86dd4adbbc4ef7c3764
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:31 2007 -0500

    Unionfs: convert a printk to pr_debug in release
    
    This is mostly an informational message, not an error.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 363d38e54f2e10e5a625df7c9b81c9c275cefeee
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:32 2007 -0500

    Unionfs: don't bother validating dentry if it has no lower branches
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 52273ddd6278dc630f8b1f83225a73173d5e74d1
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:33 2007 -0500

    Unionfs: don't printk trivial message upon normal rename-copyup
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 5177160b4b47da8ff0ff7826b3d0d619a2562a8d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:34 2007 -0500

    Unionfs: support lower filesystems without writeback capability
    
    Implement unionfs_writepages.  As per
    mm/filemap.c:__filemap_fdatawrite_range(), don't call our writepage if the
    lower mapping has BDI_CAP_NO_WRITEBACK capability set.
    
    Signed-off-by: Pekka J Enberg <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 37ef51ec7e86b17d0dd38260eed54997e79b9415
Author: Andrew Morton <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:35 2007 -0500

    Unionfs: slab api remove useless ctor parameter and reorder parameters
    
    fs/unionfs/super.c: In function 'unionfs_init_inode_cache':
    fs/unionfs/super.c:874: warning: passing argument 5 of 'kmem_cache_create' 
from incompatible pointer type
    
    Cc: Christoph Lameter <[EMAIL PROTECTED]>
    Cc: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit eb1af65e214eff90c3b8d04adee73732a668ae6e
Author: Andrew Morton <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:36 2007 -0500

    Unionfs: security convert lsm into a static interface fix
    
    ERROR: "security_inode_permission" [fs/unionfs/unionfs.ko] undefined!
    ERROR: "security_file_ioctl" [fs/unionfs/unionfs.ko] undefined!
    
    Need these back.
    
    Cc: "Serge E. Hallyn" <[EMAIL PROTECTED]>
    Cc: Arjan van de Ven <[EMAIL PROTECTED]>
    Cc: Chris Wright <[EMAIL PROTECTED]>
    Cc: James Morris <[EMAIL PROTECTED]>
    Cc: Stephen Smalley <[EMAIL PROTECTED]>
    Cc: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit cd4e982353ff151c8b56f293ae98993284595b37
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.6
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 94d03bb1089c6c19dfbb869992e090c9d7c089d5
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 15:07:27 2007 -0500

    Unionfs: coding style: avoid lines longer than 80 chars
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9e9fa8ab07640f9e3e7d2b3b1bd20bf48ede12bb
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:38 2007 -0500

    Unionfs: coding style: miscellaneous fixes
    
    No braces around single-statement if's.
    No externs in .c files.
    use <linux/mman.h> not <asm/mman.h>.
    Use (foo *) not (foo*).
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9af6f62985f8207a47c742ccf0b931b47092d2be
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:39 2007 -0500

    Unionfs: coding style: avoid multiple assignments on same line
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ae619d9f1d4c1fd11723c9a137ae8835a0120565
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:32:04 2007 -0500

    Unionfs: coding style: take assignments out of "if" conditions
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 5929e1ebe35d36a460a20043843fc5c6c994a0d5
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:41 2007 -0500

    Unionfs: coding style: proper spacing
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0cb99cd7b0eb1c8882471d72072bad5478a0e75e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:30:13 2007 -0500

    Unionfs: use braces in both branches of conditionals
    
    As per CodingStyle, if one branch of an if-then-else has braces because it
    has multiple statements, then the other branch should have braces too, even
    if the other branch has only one statement in it.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 55913d41465a4929231ebf36c0f0ac9a67a69ff1
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:27:52 2007 -0500

    Unionfs: remove periods from the end of printk strings
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 115e6ef92bc6942c97ce22c37dbb0910dd9a82c0
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:27:19 2007 -0500

    Unionfs: update/assign a KERN_* level to all printk statements
    
    Also use pr_info() instead of printk(KERN_INFO ...)
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9fb16d61072aca31220fc599a924e518ccbd159c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:45 2007 -0500

    Unionfs: add missing newlines in printk's
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9a2c8ac3e3fecb670ed07f8fa5e4f9ec4eb88830
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 16:38:45 2007 -0500

    Unionfs: convert all appropriate printk's to pr_debug calls
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f9f65f7e903b429368eb506005886a285111bd86
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:47 2007 -0500

    Unionfs: use pr_debug() instead of custom dprintk()
    
    Also turn on DEBUG if CONFIG_UNION_FS_DEBUG is on
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 924cd74c5f52044bf1c4a320d2885a9eb553e6c4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:48 2007 -0500

    Unionfs: use page_offset() helper
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 773a82216ab39574619a491aee32e75fe4c9e60e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:13:43 2007 -0500

    Unionfs: remove unnecessary if condition
    
    The condition is always true there.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 48bcad030a750640d5746da6777b11365a22cfe2
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:49 2007 -0500

    Unionfs: properly indent static struct
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 130f9fb6165657e602bf15df99cfd44f34f3b827
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:12:13 2007 -0500

    Unionfs: use UNIONFS_NAME macro
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 489ecedebff8f5a2b709c36b07994610b61e2c72
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:11:00 2007 -0500

    Unionfs: use consistent printk prefixes
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 096cb6abe99ba056e18d1e6d6ea138cc4df09a3d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:09:39 2007 -0500

    Unionfs: minor comment cleanups
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit de6b46c32b1446c977413457eb8f8151b441d0eb
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:54 2007 -0500

    Unionfs: compile if debug is off
    
    Signed-of-by: John Johansen <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 16105d989c9958611bb3e10264875f8ff87c2f9f
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 16:37:51 2007 -0500

    Unionfs: add un/likely on conditionals
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4777366a9215842dfb91031b4766908171660fb4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:45:55 2007 -0500

    Unionfs: display informational messages only if debug is on
    
    This is to avoid filling the console/logs with messages that are primarily
    of debugging use.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    Acked-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit de07e610b8c5abde6a38e2cd12a72132d48feb1e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.5
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 78a565816c275f1975a1eabd9bae8f8afbd4b2fc
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 16:36:27 2007 -0500

    Unionfs: use poison.h for safe poison pointers
    
    This also fixes a compile warning on 64-bit systems.
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2eb8c00d3aea7c5d49de85e07a0f0bd465e2118d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 14:58:02 2007 -0500

    Unionfs: lower nameidata support for nfsv4
    
    Pass nameidata structures as needed to the lower file system, support
    LOOKUP_ACCESS/OPEN intents.  This makes unionfs work on top of nfsv4.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit a10c62ad74043781633207e45d58113da9a8376e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:37:39 2007 -0500

    Unionfs: add lower nameidata debugging support
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 3236dbcc63605e82f1e7f0f31df3cb8ac6733bf0
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:36:23 2007 -0500

    Unionfs: minor coding style updates
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ea047c2ecc152e825fdacc736281c4224061add7
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:16 2007 -0500

    Unionfs: cast page->index loff_t before shifting
    
    Fixes bugs in number promotion/demotion computation, as per
    <http://lkml.org/lkml/2007/9/20/17>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 7416f05f7478c115e47fa133467d2bc84e41897d
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.4
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4f71a895c44b8c1d817b3bfb4b97d0f9601f822d
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:18 2007 -0500

    Unionfs: cache-coherency fixes
    
    Do not update mtime if there is no upper branch for the inode.  This
    prevents from calling unionfs_lower_inode_idx() with a negative index, which
    triggers a bug.
    
    Signed-off-by: Olivier Blin <[EMAIL PROTECTED]>
    Acked-by: Erez Zadok <[EMAIL PROTECTED]>

commit 16aa1c09964d2b3e13c1392dd3c0186309e9d19c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:19 2007 -0500

    Unionfs: display informational messages only if debug is on
    
    This is to avoid filling the console/logs with messages that are primarily
    of debugging use.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ce6a79c12ca2785808e5cb8419b446cb1e36f5ce
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:20 2007 -0500

    Unionfs: use int in unionfs_d_revalidate
    
    We have to use an int, even though unionfs_d_revalidate calls other routines
    that return only true/false, b/c ->d_revalidate is allowed to return a
    negative errno number.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 14a910df8bfd73d225d3e82918113e8cf1ed4af0
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:21 2007 -0500

    Unionfs: documentation updates/corrections
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 20af1d288bce9690cfd78c8380c64ff8aa136b7f
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.3
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit a87a73c058b75e784e5e06766fe848fea30922f3
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:34:55 2007 -0500

    Unionfs: cache coherency after lower objects are removed
    
    Prevent an oops if a lower file is deleted and then it is stat'ed from the
    upper layer.  Ensure that we return a negative dentry so the user will get
    an ENOENT.  Properly dput/mntput so we don't leak references at the lower
    file system.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 29f3b5aee8ca7b7fa675104fb7af26cebeba39c3
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:33:46 2007 -0500

    Unionfs: unionfs_lookup locking consistency
    
    Ensure that our lookup locking is consistent and symmetric: if a lock
    existed before calling lookup_backend, it should remain so; only if
    performing a lookup of a known new dentry, should lookup_backend return a
    newly-locked dentry-inode info (and only if there was no error).  Document
    this behavior.  This cleanup allowed us to remove two unnecessary int
    declarations.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e948e2257640047935429063251004dde78cae1c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:25 2007 -0500

    Unionfs: use boolean type in unionfs_d_revalidate
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit fba47b7916a51cac518644bcd048de4e6103d288
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:26 2007 -0500

    Unionfs: add missing newlines to printks
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit c0d3b22891abe671327a29f381d1106cc5303586
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:27 2007 -0500

    Unionfs: remove unnecessary comment
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e90ab23b6e570033ff71504e4970ec63189057d1
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:28 2007 -0500

    Unionfs: documentation updates
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f06ab6dda2c3481f1469bd4c1825619b42bd1322
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:29 2007 -0500

    Unionfs: use bool type in dentry and file revalidation code
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0a7a1fc73066c1e4e3207c3651da4496c3ae1818
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:30 2007 -0500

    Unionfs: cache-coherency fix for is_newer_lower
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit acf07cf4aece651994e7babda6e87f740c353fef
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:33:02 2007 -0500

    Unionfs: import Jeff's fixes from korg
    
    64 bit fixes for debugging support.
    Use bool type where appropriate.
    Minor code cleanups.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit 430723783be2ed77a58646d33cccb71d8996fdf4
Author: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:31 2007 -0500

    Unionfs: Remove unused #defines
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit fc4ff3cc5bcf3c8be768843aa8ebadf87c8d27b1
Author: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:32 2007 -0500

    Unionfs: Simplify unionfs_get_nlinks
    
    Since we set the right value for d_type in readdir, there's really no point
    in having to calculate the number of directory links. Some on-disk
    filesystems don't even store the number of links for directories.
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit b20b29fd62b057c246a96486ffaae26d9069bb19
Author: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:27:29 2007 -0500

    Unionfs: unionfs_create rewrite
    
    The code was hard to follow and violated some invariants (e.g., never modify
    a read only branch, and always create on branch 0).
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit f41add71101ec201d87850cfaf0652fb20a365db
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:34 2007 -0500

    Unionfs: document lockdep issues
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 1052fce361be47d18f29bb50e29fa0f935d28caa
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:35 2007 -0500

    Unionfs: support CONFIG_PREEMPT_RT
    
    Use compat_rw_semaphore when using the real-time preemption patches.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0fb2d744fee82318f0481f8e97c99bc86046e98c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.2
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 141b47eab4d204c44117c014b8ab5cd69ad2c754
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 22:07:11 2007 -0500

    Unionfs: imported fixes from korg branch's take-3 series
    
    - removed EACCES/EROFS text from issues.txt
    - updated sioq.[hc] copyright dates to 2006 (not earlier)
    - added small XXX comment to xattr copyup code (selinux CAP_FOWNER stuff) to
      say that entire copyup code should be moved to SIOQ.
    - copyup_xattr: renamed name_list_orig -> name_list_buf
    - multi-line static inline unionfs_xattr_kfree
    - rewrote unionfs_interpose a bit cleaner (no backward goto's, better
      variable names, use small util fxn, etc.)
    - introduced CONFIG_UNION_FS_DEBUG instead of hand-editing makefile
    - unionfs_mntget/put cleanups
    - bug fix to is_robranch_idx (thanks to Patrick Aussems).  Fixed bug #571.
    - fixed a couple of important bugs in our init/release_lower_nd
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit acd94c3b756999c1d4aaac4025cde34ecdcb389d
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:39:25 2007 -0500

    Unionfs: release 2.1.1.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 017a33145eb5b8a8d11c9cb7c5c4ad3fb609d1c2
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:39 2007 -0500

    Unionfs: minor usage.txt documentation fix
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ad95ded78ca0e7c1dc10440a4d32b067c47729f9
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 14:08:27 2007 -0500

    Unionfs: imported fixes from korg branch
    
    Export release_open_intent.
    SElinux: xattr fixes (CAP_FOWNER).
    unionfs_xattr_kfree inline function.
    alloc_lower_nd -> init_lower_nd.
    free_lower_nd -> release_lower_nd.
    unionfs_purge_extras -> unionfs_postcopyup_release.
    unionfs_inherit_mnt -> unionfs_postcopyup_setmnt.
    minor code/copyright cleanups.
    MS_SILENT remount fix.
    simplify unionfs_mntget/put.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit acc5629fb293bb27098fb4f7c7285c7fee677dee
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 21:45:45 2007 -0500

    Unionfs: back-port stuff from Jeff's korg branch to per-kernel branches
    
    Just a bunch of code cleanups: no functionality changed.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit f8914b1b364d6948c3a042ece4f85b01cffa49a7
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:42 2007 -0500

    MM/VFS: prevent compile warnings/errors with unknown struct super_block
    
    This is a temp fix for 2.6.23-rc2.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 6a1905b3146fea1ecb1d6319c2b0a767512d9660
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 23:45:46 2007 -0500

    Unionfs/eCryptfs: remove lookup_one_len_nd and LOOKUP_ONE code
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0f2332bb5d5335bb7f2d1e04209a0448658a7764
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sun Nov 18 17:37:25 2007 -0500

    Unionfs: support incremental versions
    
    Also: release Unionfs 2.1 (since code has gotten much more stable since 2.0)
    
    Unionfs will now report its precise version number and the kernel it was
    meant for, upon module loading.  This is useful for maintenance purposes:
    users can report the precise release number of Unionfs, and it also helps
    prevent running older versions when newer ones are intended, or mixing
    versions among supported kernels.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e4c68550d8484616644ea975ae52c1b31d23bbaf
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:46 2007 -0500

    Unionfs: check for immutable files before read-only branches
    
    Immutable files should never be allowed to be copied-up on write, even if
    they're on read-only file systems or branches.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 5afae177b1a0466b6bad92241b71a68952a48d92
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:47 2007 -0500

    Unionfs: mmap fixes to unionfs_writepage
    
    Don't call unlock_page on lower_page unless lower ->writepage failed.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 279d94bcee5ef0b545b1d60296fc3314869c7443
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:48 2007 -0500

    Unionfs: rewrite cleanup_file more cleanly
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e9b205d70d90cdca80e3d8bfee87688f73f14209
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:49 2007 -0500

    Unionfs: improved printk upon copyup
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ff1074b36111d3ce3459a02ec7d538540be855a3
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:49 2007 -0500

    Unionfs: xattr copyup fixes
    
    Rewrote xattr copyup code more cleanly; documented it better; eliminate one
    possible leak in error path; and ignore another impossible copyup-time error
    which caused fanout invariant violations under memory-pressure conditions.
    
    Don't use vmalloc when allocating xattr buffers, as the VFS no longer does
    so (just use kmalloc).  Eliminate unionfs_xattr_free which is now just plain
    kfree.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e20614de9ff65616ab76e7b8d86c389ce961d2e8
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:50 2007 -0500

    Unionfs: fixes to cache-coherency checking code
    
    Under memory pressure, in_newer_lower could be called on uninitialized
    dentries or inodes.  So return 0 safely in that case (rather than oops).
    This is OK because is_newer_lower will be called again on the same object(s)
    and cache-coherency will be validated and maintained then.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 8c79a5e30c000c4cd5da66386dadd244fe14e399
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:51 2007 -0500

    Unionfs: mmap fixes to unionfs_writepage
    
    This patch fixes hangs when calling sync(2) on memory-pressured systems.
    
    Call find_lock_page instead of grab_cache_page.  We used to call
    grab_cache_page(), but that was unnecessary as it would have tried to create
    a new lower page if it didn't exist, leading to deadlocks (esp. under
    memory-pressure conditions, when it is really a bad idea to *consume* more
    memory).  Instead, we assume the lower page exists, and if we can find it,
    then we ->writepage on it; if we can't find it, then it couldn't have
    disappeared unless the kernel already flushed it, in which case we're still
    OK.  This is especially correct if wbc->sync_mode is WB_SYNC_NONE (as per
    Documentation/filesystems/vfs.txt).  If we can't flush our page because we
    can't find a lower page, then at least we re-mark our page as dirty, and
    return AOP_WRITEPAGE_ACTIVATE as the VFS expects us to.  (Note, if in the
    future it'd turn out that we have to find a lower page no matter what, then
    we'd have to resort to RAIF's page pointer flipping trick.)
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit b9afec71004af7245cd2ff554da505cbd65f7350
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 21:35:17 2007 -0500

    Unionfs: bugfix when mounting readonly exported NFS volumes (was: nfsro)
    
    When stacking on top of readonly exported NFS volumes, which are mounted
    locally read-write, attempting to create a new file yields the proper EROFS.
    But attempting to modify an existing file returns an EACCES, which
    interferes with unionfs's copyup policy: only EROFS triggers a copyup,
    whereas EACCES does not (and shouldn't -- that'd be a security hole).  The
    old unionfs 1.x attempted to workaround this EACCES condition by supporting
    a special unionfs mount option called 'nfsro'; support for this option was
    left in the latest unionfs 2.0, but the mount option was not made available
    until we could properly investigate this issue with the latest NFS code.
    
    This patch removes all remnants of this 'nfsro' support.  It is no longer
    needed.  Instead, users can use the existing per-branch 'ro' unionfs mount
    option, which would properly return the appropriate status conditions back
    from unionfs_permission.  These return conditions result in a copyup if and
    only if needed, even for readonly exported NFS volumes.  In effect, unionfs
    per-branch 'ro' option now simulates a true readonly localhost mount.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d935df3c13c222164128b7d55cfc0842f02f0348
Author: Adrian Bunk <[EMAIL PROTECTED]>
Date:   Sat Nov 17 21:24:53 2007 -0500

    [PATCH] unionfs: make functions static
    
    This patch makes some needlessly global functions static.
    
    Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit b715b4ee6099015a343ae2d404c8e8935eff34b9
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Nov 17 21:22:54 2007 -0500

    Unionfs: pass nameidata intent information to lower level file systems
    
    As of 2.6.23-rc1, nfs2 and nfs3, like nfs4 before them, begin relying on the
    struct nameidata and especially the intent information, which is passed to
    vfs_create() and others.  So, as of now, unionfs properly creates and passes
    that intent data to the lower level file system.  Currently supported are
    LOOKUP_CREATE open intents.  Others can be supported in the future
    incrementally.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 845d6eeae50415930360033f33a5d6b741229e11
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:55 2007 -0500

    Unionfs: kmem_cache_create doesn't take a dtor argument any longer
    
    Porting unionfs to 2.6.23-rc1
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit eb8f4f327bd770f8e6bf4051e0c4d65d418ec4e7
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:56 2007 -0500

    Unionfs: ensure cache coherency in unionfs_fsync/fasync
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d8628ec4140ddaae61b7b05f5e786b757327d19c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:57 2007 -0500

    Unionfs: implement native unionfs_fsync/unionfs_fasync methods
    
    Unionfs is not a block-based file system, but it has to work with both
    block-based file systems and non-block-based ones (i.e., when
    CONFIG_BLOCK=n).  We used to define our ->fsync method to file_fsync, but
    that's wrong because file_fsync partially depends on CONFIG_BLOCK=y.  And we
    didn't define an fasync method: now we have both.  Moreover, at best,
    file_fsync would have caused unionfs to sync up one lower branch---but as a
    fanout file system, we need to sync up all valid lower branches.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    
    Conflicts:
    
        fs/unionfs/file.c

commit 46369f7cefe5d373bed3eacb86120ccc08bea7e0
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:58 2007 -0500

    Unionfs: small documentation fix to usage.txt
    
    Reported by Daniel Farrugia.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit be015e47a22e4c8f3dc371a75f85e8530e798466
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:46:59 2007 -0500

    Unionfs: mmap fixes to ->writepage/readpage/sync_page
    
    unionfs_writepage: handle true errors differently from
    AOP_WRITEPAGE_ACTIVATE conditions returned by lower file systems (such as
    tmpfs).
    
    unionfs_readpage: call flush_dcache_page as required.
    
    unionfs_sync_page: don't call grab_cache_page to get the lower page, because
    that function does too much and could lead to deadlocks.  Instead, call the
    lighter-weight find_lock_page.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4769c7a4e5b93f9df77a088918b2decfcf68f0ef
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:00 2007 -0500

    Unionfs: branch-management bugfix to unionfs_file_revalidate
    
    If we re-opened the file on a different branch than the original one, and
    only if this was due to a new branch inserted, then update the mnt counts of
    the old and new branches accordingly.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2eaae9b16cb8642eba9f1495c8b6b2acad4a3fdb
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:01 2007 -0500

    Unionfs: cleanup: break line longer than 80 chars
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4f12ac0e7647cb38b89cbddbc6a11dd06c4466fa
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:02 2007 -0500

    Unionfs: fix minor typo in revalidate_chain comment
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 6f5485c29cc055a2cce634e5eb89f8605d4310ea
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:03 2007 -0500

    Unionfs: bugfix: don't call branchget() until dentry_open succeeded
    
    If dentry_open fails, we incorrectly have incremented our branch counts
    which would prevent unionfs from being unmounted (EBUSY).
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 41f5dd22cc24bd0e25c4ae6595d53621c8888c27
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:04 2007 -0500

    Unionfs: branch-management bug-fix to lower mnt counts
    
    When we revalidate opened files, the files may point to a different set of
    files on the lower branches: this could happen especially if we insert a new
    leftmost branch which happens to have duplicate file names of already-open
    files in lower-priority branches.  In this case, update the mnt counts of
    the old and new branches which hold the file accordingly.  Without this fix,
    the mntcnt of one branch is going to be one too high; and another will be
    one too low.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 37ccef8765ab47dc8b2f82add12ee44dc29f0fe3
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:05 2007 -0500

    Unionfs: use igrab instead of atomic_inc inode refcnt
    
    In branch management code, use igrab() which is better than directly
    incrementing the lower inode reference count.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 82ae205ab778592ec5103cff3ae0726b52657048
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:06 2007 -0500

    Unionfs: cache-coherency: update times of root inode after branch management
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e21d0a1754eed82f2ce487a0a13f216168f3086d
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:07 2007 -0500

    Unionfs: debugging: don't oops if sb->s_root is NULL
    
    If we're calling show_branch_counts very early during mount or late during
    unmount, don't oops if the s_root is already NULL.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 5f4579120cf9369ef10ffe308aa3281ae2c2a21f
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:08 2007 -0500

    Unionfs: debugging: show inode reference counts for all branches
    
    Another useful utility function for debugging, to show the inode refcnt's
    of all lower inodes.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit a886bab1b06e20836820bf3a73c4af35fadb3d2e
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:09 2007 -0500

    Unionfs: fix small typo in comment
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4602de2bc24f43f00e7440f5c1bf2c61347b69ec
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:09 2007 -0500

    Unionfs: bugfix -- set copied up open file mode to read and write
    
    When we copyup a file, we used to set the new file's open mode to write
    only.  But we need read permission too.  We need write permission because
    we're creating a new file; and we need read permission because the original
    file had to have been readable.  If we don't set the new files permission to
    BOTH read and write, we get -EBADF when trying calling vfs_read/vfs_write on
    a copied up file.  (This fix is somewhat related to unionfs_readpage fixes
    that use vfs_read instead of calling the lower readpage.)
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 607459a13c48f727aa67bf50be5f70ad99af0d40
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:10 2007 -0500

    Unionfs: rewrite do_unionfs_readpage to use vfs_read (bugfix)
    
    In do_unionfs_readpage, we used to call the lower file system's ->readpage.
    However, some file systems (e.g., tmpfs) don't implement ->readpage, causing
    a NULL pointer dereference under certain conditions, especially under severe
    memory pressure.  This patch reimplements do_unionfs_readpage using
    vfs_read, which makes the code simpler and more reliable, as we depend on
    the VFS to do most of the hard work (even if this implementation might be a
    bit slower).
    
    This fix also makes sense because it makes the mmap code in unionfs more
    symmetric with unionfs_commit_write --- which uses vfs_write().
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 3808626d6251419fd77a60d1732bab6076924030
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:11 2007 -0500

    Unionfs: fix minor typo in a comment
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 3373c93c095437f40025d56eeffee47b2bc7302c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:12 2007 -0500

    Unionfs: use the splice_read file method instead of sendfile
    
    In 2.6.23 (prior to rc1), sendfile was obsoleted in favor of splice_read.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4cb33da0516810ef1a6fefec68380a8bde8634c0
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:13 2007 -0500

    unionfs: better handling when copying up permissions
    
    When we copyup a file, directory, or symlink, we may be copying up from one
    file system type to another.  The destination file system may not support
    all of the features of the source file system, and the differences in
    support may be minor.  For example jffs2 doesn't allow one to chmod a
    symlink (and it returns a -EOPNOTSUPP).  So we ignore such harmless errors,
    rather than propagating them up, which results in copyup errors and errors
    returned back to users.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 1a2d8856a492050e82b780bf57701a2c3f2880ed
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 17:21:07 2007 -0500

    Unionfs: better error handling in rename code when copyups are involved
    
    First, rewrite code slightly and document it better to explain why we appear
    to ignore copyup errors (because we try the next branch to the left).
    
    Second, change a BUG_ON to a printk(KERN_ERR), because a mild failure to
    copyup a file should not cause an oops.  For example, some file systems
    don't support UIDs/GIDs (e.g., VFAT) and others don't allow you to chmod a
    symlink (e.g., jffs2), possibly resulting in mild copyup failures; that
    shouldn't be considered so severe as to cause an oops.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 980b46ce96dd6f833941b381727868917a1d8d52
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:15 2007 -0500

    Unionfs: bugfix when renaming symlinks on readonly branches
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit c27a909df5b5b4afa40842d8fdba220a512eadcd
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:17 2007 -0500

    Unionfs: prevent deadlock with branch-management code.
    
    Don't grab the superblock read-lock in unionfs_permission, which prevents a
    deadlock with the branch-management "add branch" code (which grabbed the
    write lock).  It is safe to not grab the read lock here, because even with
    branch management taking place, there is no chance that unionfs_permission,
    or anything it calls, will use stale branch information.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2700f3ebd82cdf693658c64c629346a22cfaa34c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 15:48:31 2007 -0500

    Unionfs: rename file->f_dentry references to file->f_path.dentry
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit b969c5ecb696c966733d379b31c9650d949f904a
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 15:47:54 2007 -0500

    Unionfs: improved comment above unionfs_follow_link
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 7aa341cef2d0d523f2f0f6dd32bdb0c9d976c62f
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 15:12:56 2007 -0500

    Unionfs: Change the semantics of sb info's rwsem
    
    This rw semaphore is used to make sure that a branch management
    operation...
    
    1) will not begin before all currently in-flight operations complete
    
    2) any new operations do not execute until the currently running branch
    management operation completes
    
    Reworked the patch a bit, added comments, and fixed some bugs, from the
    version originally committed into the master branch.
    
    TODO: rename the functions unionfs_{read,write}_{,un}lock() to something
    more descriptive.
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9c4188a8d9bb002d53b665532473bf0f96cbae5a
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:22 2007 -0500

    Unionfs: Remove superfluous check for NULL pointer
    
    Since we use containers and the struct inode is _inside_ the
    unionfs_inode_info structure, UNIONFS_I will always (given a non-NULL inode
    pointer), return a valid non-NULL pointer.
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    
    Conflicts:
    
        fs/unionfs/super.c

commit 628dac942134ac0484650c9787f51e209e2f1839
Author: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
Date:   Fri Nov 16 14:55:05 2007 -0500

    Unionfs: Change free_dentry_private_info to take a struct dentry
    
    This makes it more symmetric with new_dentry_private_info.
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

commit 081a6f52b3061e3188984747ba679fe1eb8e1ada
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 14:51:39 2007 -0500

    Unionfs: Cleanup new_dentry_private_data
    
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    
    Conflicts:
    
        fs/unionfs/lookup.c

commit eb7f0a66cc467eef717d749e43c65589433a4d36
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:25 2007 -0500

    Unionfs: document cache-coherency design and implementation
    
    Document our cache-coherency design, implementation; also mention alternate
    designs and a couple of limitations which might be overcome by special
    kernel support at the VFS/MM levels.  Now that cache-coherency is working,
    remove the now-obsolete older discussion of temporary workarounds.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 437bf50bc70c4e416d7c7c7960bc0f38d89998ec
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 14:10:16 2007 -0500

    Unionfs: cache-coherency calls to maintain the time invariants
    
    This patch represents several types of related changes.  First, we invoke
    functions to synchronize the upper and lower times as and when needed.  Many
    of these were bug fixes which were discovered during the development of the
    cache-coherency code.  That is, Unionfs itself wasn't maintaining
    appropriate
    times in some places, which if not fixed would have been detected by the
    invariant-checking code as a false positive (incorrectly considered as if a
    user modified the lower objects directly).
    
    Second, we do not call invariant-validation functions (unionfs_check_file,
    unionfs_check_dentry, etc.) until *after* we've revalidated them.  Otherwise
    we produced false positives.
    
    Third, we pass a flag "willwrite" to __unionfs_d_revalidate_chain to tell it
    to purge data pages if the inode lower times appear to be newer.
    
    See Documentation/filesystems/unionfs/concepts.txt under the "Cache
    Coherency" section for more details of this design and implementation.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit e986ed3ea09ad98a1e6f6ea989bb65a43384238e
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:56:13 2007 -0500

    Unionfs: core cache-coherency code
    
    This represents the core of the cache-coherency code, the code which
    maintains time-based invariants; the lower objects should never be newer
    than the upper Unionfs objects.  If they are newer, then it means that a
    user has modified the lower Unionfs branches directly.  If so, then we have
    to revalidate our objects by rebuilding them, and possibly discard any stale
    data or meta-data.  See Documentation/filesystems/unionfs/concepts.txt under
    the "Cache Coherency" section for more details of this design and
    implementation.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d3be903466e816eab59fc0b006e16cc6d166dc92
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:27 2007 -0500

    Unionfs: introduce two functions to maintain time invariants
    
    A new function unionfs_copy_attr_times to maintain the inode time invariants
    as per the Unionfs design (i.e., lower times should never be newer than our
    times), as documented in Documentation/filesystems/unionfs/concepts.txt.
    The second function, unionfs_copy_attr_all, is the unionfs-specific function
    to copy all attributes: it uses the special Unionfs handling of hard-links
    (via unionfs_get_nlinks) and it uses the special a/c/mtime handling (via
    unionfs_copy_attr_times).  This second function is the special
    fanout-version of fsstack_copy_attr_all, which was simplified for
    linear-stack stackable file systems.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ea385600e999c150011ab9a01e923956ae60cf68
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:28 2007 -0500

    Unionfs: prototype and location change for unionfs_get_nlinks
    
    Change prototype of unionfs_get_nlinks to take a const inode.  Also move
    extern for unionfs_get_nlinks so it can be refereed to in other Unionfs
    header files.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 1fe1f7f86d5a026153905dcd0f046a17471e849b
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:29 2007 -0500

    ecryptfs: update to new API of fsstack_copy_attr_all
    
    Remove obsolete third argument to fsstack_copy_attr_all which was always
    NULL for ecryptfs.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 61c569802063dbfc7386a880599e2e0508e02aed
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:30 2007 -0500

    fs_stack: simplify generic attribute-copying function
    
    Remove special get_nlinks callback from fsstack_copy_attr_all, because the
    callback was only used by Unionfs (and always used by Unionfs).  Unionfs now
    needs a more complex version of fsstack_copy_attr_all, with two callbacks:
    therefore it's easier to simplify this method for simple linear-stacking
    stackable file system, and introduce a more complex fan-out version of it
    for Unionfs.
    
    This is an API change which requires that every stackable file system in the
    kernel be updated to reflect that (currently only eCryptfs).
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit cc2bdd215999f81ceb2cc817f696024acd3f9817
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:31 2007 -0500

    Unionfs: m/c/atime invariant checking debugging code
    
    Add checks to verify that lower inode times are not newer than our own inode
    times.  Introduce two useful utility debugging functions to print inode
    times.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 4b5777447ea533163aa167e262ea55a65ae04db4
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:47:32 2007 -0500

    Unionfs: bugfix in debugging infrastructure
    
    Off-by-one bug fixed in range checking for lower directories.
    Ensure that we PRINT_CALLER before an additional debug message.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit aae213ac8734ee4842f8d61d22b3b416380272f0
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Fri Nov 16 13:49:15 2007 -0500

    Cache coherency: resync unionfs data/meta-data when lower files change
    
    Whenever we revalidate a file or dentry, we check to see if any of the lower
    inodes have changed (new mtime/ctime).  If so, we revalidate the upper
    unionfs objects.  This method "works" in that as long as a user process will
    have caused unionfs to be called, directly or indirectly, even to just do
    ->d_revalidate, then we will have purged the current unionfs data and the
    process will see the new data.  For example, a process that continually
    re-reads the same file's data will see the NEW data as soon as the lower
    file had changed, upon the next read(2) syscall.  This also works for
    meta-data changes which change the ctime (chmod, chown, chgrp, etc).
    
    However, this doesn't work when the process re-reads the file's data via
    mmap and the data was already read before via mmap: once we respond to
    ->readpage(s), then the kernel maps the page into the process's address
    space and there doesn't appear to be a way to force the kernel to invalidate
    those pages/mappings, and force the process to re-issue ->readpage.  Note:
    only pages that have already been readpage'ed are not updated; any other
    pages which unionfs's ->readpage would be called on, WILL get the updated
    data.  If there's a way to invalidate active mappings and force a
    ->readpage, let us know please (invalidate_inode_pages2 doesn't do the
    trick).
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to