fs/unionfs/commonfops.c | 72 ++++++++++++++++++++++++---------------------
fs/unionfs/copyup.c | 34 ++++++++++++++-------
fs/unionfs/dentry.c | 9 ++++-
fs/unionfs/inode.c | 47 ++++++++++++++----------------
fs/unionfs/mmap.c | 31 ++++++++++++++++++--
fs/unionfs/union.h | 1 -
fs/unionfs/xattr.c | 16 +---------
include/linux/union_fs.h | 3 --
8 files changed, 120 insertions(+), 93 deletions(-)
New commits:
commit 7476cea99055a40d438f9219e856ec99c6c13ba1
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Wed Aug 1 10:29:42 2007 -0400
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 a922afc75a9f4e5ba65ca280577f9f513abe4a6a
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 19:25:55 2007 -0400
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 782aa4789cdb28618334ac7b925079323978ac5d
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 18:12:25 2007 -0400
Unionfs: rewrite cleanup_file more cleanly
Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
commit 17c8753df147bf6028b34c9d1be436e28eda8f3c
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 03:58:50 2007 -0400
Unionfs: improved printk upon copyup
Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
commit 59d3f3c0306923a77215c50d003d6357fef876c3
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 03:53:47 2007 -0400
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 ed04cae2abc1fb11918690ef4c7fd712099ee2eb
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 03:33:24 2007 -0400
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 d05f9f0a9265187769f5c7ee09165f25deb1eff2
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Tue Jul 31 03:29:50 2007 -0400
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 f15a6a8e85008879ebac3e8d9372e8049a76b98f
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date: Thu Jul 26 00:04:58 2007 -0400
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]>
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs