Documentation/filesystems/unionfs/concepts.txt |   20 ++-
 Documentation/filesystems/unionfs/issues.txt   |   12 +-
 Documentation/filesystems/unionfs/usage.txt    |   13 +-
 fs/stack.c                                     |    8 +-
 fs/unionfs/Makefile                            |    2 +-
 fs/unionfs/commonfops.c                        |   28 +++--
 fs/unionfs/copyup.c                            |   16 +-
 fs/unionfs/debug.c                             |   35 +++--
 fs/unionfs/dentry.c                            |  119 ++++++++++-----
 fs/unionfs/dirfops.c                           |    6 +-
 fs/unionfs/dirhelper.c                         |   14 +--
 fs/unionfs/export.c                            |    2 +-
 fs/unionfs/fanout.h                            |   15 ++-
 fs/unionfs/file.c                              |   53 +------
 fs/unionfs/inode.c                             |  189 +++++++++++++-----------
 fs/unionfs/lookup.c                            |   16 +--
 fs/unionfs/main.c                              |   13 +-
 fs/unionfs/mmap.c                              |   19 ++-
 fs/unionfs/odf.c                               |    2 +-
 fs/unionfs/rename.c                            |  109 +++++++-------
 fs/unionfs/subr.c                              |    2 +-
 fs/unionfs/super.c                             |   31 +++-
 fs/unionfs/union.h                             |   38 +++--
 fs/unionfs/unlink.c                            |   35 +++--
 fs/unionfs/xattr.c                             |   16 +-
 25 files changed, 456 insertions(+), 357 deletions(-)

New commits:
commit 39a83e579767e4a27b96938438042804f8fdae97
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:43:07 2008 -0500

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

commit e134a903e79aec1ca3abde4851a0b2fc6f755799
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:14:40 2008 -0500

    Unionfs: ensure we have lower dentries in d_iput
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 72495d1f0f1e7da9b2c0d6160e98fa717cb6ad73
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:13:32 2008 -0500

    Unionfs: branch-management related locking fixes
    
    Add necessary locking to dentry/inode branch-configuration, so we get
    consistent values during branch-management actions.  In d_revalidate_chain,
    ->permission, and ->create, also lock parent dentry.

commit 37593d7b58fe3c204695b19cea6b6cc2b9001a6e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:11:23 2008 -0500

    Unionfs: mmap fixes
    
    Ensure we have lower inodes in prepare/commit_write.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 40039741036aba79ff1356e33f4df480c68d2c1c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:08:10 2008 -0500

    Unionfs: merged several printk KERN_CONT together into one pr_debug
    
    CC: Joe Perches <[EMAIL PROTECTED]>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit ea9ea5e1b1911bf36363a8361a15575e5af9976c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:06:32 2008 -0500

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

commit 60e4d6f529f4f961af38a010bb3a37c88557e1a4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:05:17 2008 -0500

    Unionfs: use VFS helpers to manipulate i_nlink
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 8182e238f8b2bc9b80a76d1d7bbc3842a68c31c8
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:04:26 2008 -0500

    Unionfs: locking fixes
    
    Lock parent dentries during revalidation.
    Reduce total number of lockdep classes used.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 6b7de1821ae4f9527e5dff739aa59c71a448205e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:03:43 2008 -0500

    Unionfs: use printk KERN_CONT for debugging messages
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit fe78aa6bbec2b47fff501a5a78e45d44f7f99cfd
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 12:02:30 2008 -0500

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

commit 254dfd05eebedbf4f9bbeabcc83cbe58305b6a1c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:13:01 2008 -0500

    Unionfs: don't check parent dentries
    
    Parent dentries may not be locked and may change, so don't check them.  But
    do check parent inodes if they are passed to the method.  Also, ensure the
    checks are done only if no error occurred.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f99acecc7b7edcdee0c39bdc8bac752311332ff3
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:12:09 2008 -0500

    Unionfs: cleanup lower inodes after successful unlink

commit fe755d2bf0b7f2b5532aa39f1af43a1804291b6f
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:11:04 2008 -0500

    Unionfs: minor code rearrangement in rename
    
    To avoid too much code nesting.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f1dd4d6cbc6059c5606195a29c7117cfc92e9383
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:10:25 2008 -0500

    Unionfs: implement lockdep classes
    
    Lockdep fixes.  Support locking order/classes (e.g., parent -> child ->
    whiteout).  Remove locking from create_parents: it's enough to just dget the
    dentries in question.  Move parent locking to from lookup_backend to caller,
    unionfs_lookup.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 8e808d628414ee536ae438d6f3ed754285c5c09c
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:09:27 2008 -0500

    Unionfs: prevent false lockdep warnings in stacking
    
    A stackable file system like unionfs often performs an operation on a lower
    file system, by calling a vfs_* method, having been called possibly by the
    very same method from the VFS.  Both calls to the vfs_* method grab a lock
    in the same lock class, and hence lockdep complains.  This warning is a
    false positive in instances where unionfs only calls the vfs_* method on
    lower objects; there's a strict lock ordering here: upper objects first,
    then lower objects.
    
    We want to prevent these false positives so that lockdep will not shutdown
    so it'd still be able to warn us about potentially true locking problems.
    So, we temporarily turn off lockdep ONLY AROUND the calls to vfs methods to
    which we pass lower objects, and only for those instances where lockdep
    complained.  While this solution may seem unclean, it is not without
    precedent: other places in the kernel also do similar temporary disabling,
    of course after carefully having checked that it is the right thing to do.
    
    In the long run, lockdep needs to be taught how to handle about stacking.
    Then this patch can be removed.  It is likely that such lockdep-stacking
    support will do essentially the same as this patch: consider the same
    ordering (upper then lower) and consider upper vs. lower locks to be in
    different classes.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 6485473bde9e0033ce58ab8448efbe6709b9072e
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:08:18 2008 -0500

    Unionfs: implement d_iput method
    
    This is needed to drop lower objects early enough, under certain conditions,
    so the lower objects don't stay behind until umount(). [LTP testing]
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 3a2d5a80442c20a9c504c39b148b01c023b40cdd
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:07:33 2008 -0500

    Unionfs: don't check dentry on error
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9da6ef8c901c9f979b64e7c49a8694b547164b23
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:06:35 2008 -0500

    Unionfs: initialize namelist variable in rename
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 45c430d285648ef06c92af7684c807b369a64c54
Author: Rachita Kothiyal <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:05:55 2008 -0500

    Remove unnecessary locking of sb in check_empty and odf_cache_dir
    
    Signed-off-by: Rachita Kothiyal <[EMAIL PROTECTED]>

commit f7829fec35da35f1ef4b2b0cf7f9848fe141defb
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:05:11 2008 -0500

    Unionfs: minor cleanup in check_empty
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit a37f1ca340fa13b604841d572dcd8cc0bbd8d4fc
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:04:18 2008 -0500

    Unionfs: update inode times after a successful open
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 6c2544e71c0466a7993f921469af2779a6b444f4
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:03:42 2008 -0500

    Unionfs: set our superblock a/m/ctime granularity
    
    Set it to 1 ns, because we could be stacked on top of file systems with such
    granularity.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 8ef41d98a74b4d0996e0bca76e49b85f82ea9390
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:02:38 2008 -0500

    Unionfs: handle on lower inodes in lookup
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit d21e0051a3021bb44c66e739390f8a9db316da42
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:01:48 2008 -0500

    Unionfs: remove unnecessary parent lock in create
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9c055caf7ff07a9693b3886ec693a74028efb961
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 07:01:01 2008 -0500

    Unionfs: remove unnecessary locking in follow-link
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit aa6b341b2fef93bd19f37d1ceff9dc87cfeac7bc
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:59:57 2008 -0500

    Unionfs: remove unnecessary lock in read_inode
    
    Our read_inode doesn't need to grab the superblock rwsem because there no
    chance it could be affected by branch management.  But our read_inode was
    called from other places which did grab need to grab that rwsem, and lockdep
    complained.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 7e7d4d13c220a6e4d7cae8093e0834f210b50390
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:59:15 2008 -0500

    Unionfs: remove unnecessary conditional inode lock
    
    This was intended to protect the inode during branch management, but that is
    now done through our superblock rwsem.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2e80a687235d005228f2de3a404339773eae9544
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:58:19 2008 -0500

    Unionfs: prevent deadlock in cache coherency
    
    Don't try to truncate_inode_pages in in purge_inode_data, because this could
    lead to a deadlock between some of address_space ops and dentry
    revalidation: the address space op is invoked with a lock on our own page,
    and truncate_inode_pages will block on locked pages.  Instead, it should be
    enough to be gentler and just invalidate_mapping_pages.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 7b53f09a6478b49132251cb98de2787c19151516
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:57:30 2008 -0500

    Unionfs: remove custom read/write methods
    
    Having them results in lockdep warnings about having locks and grabbing the
    same class locks in do_sync_read/write which were called from
    unionfs_read/write.  All they did was revalidate out file object sooner,
    which will now be deferred till a bit later.  Instead, use generic
    do_sync_read and do_sync_write.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9948c254ced858917f1d96693a0d1a352e380c5e
Author: Hugh Dickins <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:56:50 2008 -0500

    Unionfs: restructure unionfs_setattr and fix truncation order
    
    Restructure the code to move the lower notify_change out of the loop in
    unionfs_setattr.  Cleanup and simplify the code.  Then fix the truncation
    order which fsx-linux in a unionfs on tmpfs found.  Then handle copyup
    properly.
    
    When shrinking a file, unionfs_setattr needs to vmtruncate the upper level
    before notifying change to the lower level, to eliminate those dirty pages
    beyond new eof which otherwise drift down to the lower level's writepage,
    writing beyond its eof (and later uncovered when the file is expanded).
    
    Also truncate the upper level first when expanding, in the case when
    the upper level's s_maxbytes is more limiting than the lower level's.
    
    Signed-off-by: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 2979d214a6d99d9b1041ac62a29fb74843c48c59
Author: Hugh Dickins <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:55:57 2008 -0500

    Unionfs: mmap fixes
    
    Remove !mapping_cap_writeback_dirty shortcircuit from unionfs_writepages.
    
    It was introduced to avoid the stray AOP_WRITEPAGE_ACTIVATE coming from
    shmem_writepage; but that has since been fixed in shmem_writepage and in
    write_cache_pages.  It stayed because it looked like a good optimization,
    not to waste time calling down to tmpfs when that would serve no purpose.
    
    But in fact this optimization causes hangs when running LTP with unionfs
    over tmpfs.  The problem is that the test comes at the wrong level: unionfs
    has already declared in its default_backing_dev_info that it's playing by
    cap_writeback_dirty rules.  If it does nothing here in its writepages, its
    dirty pages accumulate and choke the system.  What's needed is to carry on
    down and let its pages be cleaned while in turn they dirty the lower level.
    
    And this now has an additional benefit for tmpfs, that a sync or pdflush
    pushes these pages down to shmem_writepage, letting it match the filepage
    coming from unionfs with the swap which may have been allocated earlier,
    so it can free the duplication sooner than waiting for further pressure.
    
    Remove unnecessary locking/code from prepare_write.  Handle if no lower
    inodes in writepage.
    
    Signed-off-by: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit abf519c30ea8b64328a5214a215803ea92fe0af2
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:55:01 2008 -0500

    Unionfs: release special files on copyup
    
    If we copyup a special file (char, block, etc.), then dput the source
    object.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit f1b0b3eec872a276d1dd9c036cc9536d97ccaab6
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:54:22 2008 -0500

    Unionfs: initialize inode times for reused inodes
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 9ae0b64fa7e9ec35894a70a408128a3c7f682f8a
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:53:30 2008 -0500

    Unionfs: interpose cleanup and fix for spliced dentries
    
    Fix unionfs_interpose to fill lower inode info when d_splice_alias returns
    NULL.  Also cleanup impossible case (d_splice_alias doesn't return ERR_PTR).
    
    Signed-off-by: Rachita Kothiyal <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit a61a7139dd238f0276f566d8ac7710d423f702ce
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:52:20 2008 -0500

    Unionfs: clarify usage.txt read/write behavior
    
    CC: Michael Tokarev <[EMAIL PROTECTED]>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 3363550194d1049f80dd49567c95e83b3f80c4fc
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:51:29 2008 -0500

    Unionfs: use locking around i_size_write in 32-bit systems
    
    CC: Hugh Dickins <[EMAIL PROTECTED]>
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 48dc58eb8e1956765f6d27a9288f6923f1805dd6
Author: Hugh Dickins <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:50:49 2008 -0500

    VFS/fs_stack: use locking around i_size_write in 32-bit systems
    
    LTP's iogen01 doio tests hang nicely on 32-bit SMP when /tmp is a unionfs
    mount of a tmpfs.  See the comment on i_size_write in linux/fs.h: it needs
    to be locked, otherwise i_size_read can spin forever waiting for a lost
    seqcount update.
    
    Most filesystems are already holding i_mutex for this, but unionfs calls
    fsstack_copy_inode_size from many places, not necessarily holding i_mutex.
    Use the low-level i_lock within fsstack_copy_inode_size when 32-bit SMP.
    
    Checked the entire unionfs code to ensure this is the right fix for
    i_size_write().
    
    Also compared to what other file systems do when they have to handle inodes,
    esp. not their own inodes (e.g., network file systems have to access the
    exported file system's inodes).  Found out that most such file systems not 
just
    don't lock around i_size_write, but they don't even use i_size_read or
    i_size_write to access the inode's size.
    
    CC: Mike Halcrow <[EMAIL PROTECTED]>
    
    Signed-off-by: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

commit 0bbba99efd265f37cab44f463a6f71c043271b94
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Jan 10 06:49:42 2008 -0500

    VFS/fs_stack: drop cast on inode passed to i_size_read
    
    i_size_read() takes 'const struct inode *' already, as of 2.6.20.
    
    CC: Mike Halcrow <[EMAIL PROTECTED]>
    
    Signed-off-by: Jan Engelhardt <[EMAIL PROTECTED]>
    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