unionfs-2.6.39.y.git
13 years agoUnionfs: remove whiteout of opened but unlinked file from readonly branch
Erez Zadok [Sat, 30 Apr 2011 05:33:55 +0000 (01:33 -0400)]
Unionfs: remove whiteout of opened but unlinked file from readonly branch

If we unlink an opened file in a readonly branch, then we create a whiteout.
But then if if ftruncate it, we copyup a zero-length file.  So we have to
delete the whiteout.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: find lower inode of unlinked opened files in setattr
Erez Zadok [Sat, 30 Apr 2011 05:33:55 +0000 (01:33 -0400)]
Unionfs: find lower inode of unlinked opened files in setattr

To find the inode of a lower file that's open but unlinked, we cannot find
it via unionfs_lower_inode as that's NULL; but we can get it properly from
lower_dentry->d_inode.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: port to 2.6.39
Erez Zadok [Sat, 30 Apr 2011 05:33:19 +0000 (01:33 -0400)]
Unionfs: port to 2.6.39

Remove lock/unlock_kernel in ->fasync.
Convert from ->get_sb to ->mount op.
Remove include to smp_lock.h, added sched.h.
Convert from path_lookup(nd) to kern_path(path).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.8
Erez Zadok [Sat, 30 Apr 2011 05:32:19 +0000 (01:32 -0400)]
Unionfs: Release 2.5.8

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: implement replacement for mnt_get_count
Erez Zadok [Sat, 30 Apr 2011 05:32:18 +0000 (01:32 -0400)]
Unionfs: implement replacement for mnt_get_count

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update ->permission prototye and code for new iperm flag
Erez Zadok [Sat, 30 Apr 2011 05:32:17 +0000 (01:32 -0400)]
Unionfs: update ->permission prototye and code for new iperm flag

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update name of macro for embedded dentry name length
Erez Zadok [Sat, 30 Apr 2011 05:32:16 +0000 (01:32 -0400)]
Unionfs: update name of macro for embedded dentry name length

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: ->setattr fixes
Erez Zadok [Sat, 30 Apr 2011 05:31:29 +0000 (01:31 -0400)]
Unionfs: ->setattr fixes

Call inode_check_ok first thing on our inode.
Pass lower_file in struct iattr to lower file system.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't dereference null pointers if dir="" was given
Erez Zadok [Sat, 30 Apr 2011 05:30:29 +0000 (01:30 -0400)]
Unionfs: don't dereference null pointers if dir="" was given

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.7
Erez Zadok [Thu, 4 Nov 2010 05:07:41 +0000 (01:07 -0400)]
Unionfs: Release 2.5.7

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: call truncate_inode_pages+end_writeback in ->evict_inode
Erez Zadok [Tue, 2 Nov 2010 22:47:42 +0000 (18:47 -0400)]
Unionfs: call truncate_inode_pages+end_writeback in ->evict_inode

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.6
Erez Zadok [Fri, 24 Sep 2010 05:25:04 +0000 (01:25 -0400)]
Unionfs: Release 2.5.6

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: pass valid vfsmount to vfs_statfs
Erez Zadok [Fri, 24 Sep 2010 07:10:09 +0000 (03:10 -0400)]
Unionfs: pass valid vfsmount to vfs_statfs

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: run check_nd only if nd is valid in ->put_link
Erez Zadok [Fri, 24 Sep 2010 06:21:08 +0000 (02:21 -0400)]
Unionfs: run check_nd only if nd is valid in ->put_link

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: support ->unlocked_ioctl and ->compat_ioctl
Erez Zadok [Fri, 24 Sep 2010 06:27:44 +0000 (02:27 -0400)]
Unionfs: support ->unlocked_ioctl and ->compat_ioctl

Old ->ioctl was split into ->unlocked_ioctl and ->compat_ioctl.  Compat
version doesn't need to lock_kernel any longer.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.5
Erez Zadok [Wed, 11 Aug 2010 06:13:49 +0000 (02:13 -0400)]
Unionfs: Release 2.5.5

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: new vfs_statfs and ->evict_inode prototypes
Erez Zadok [Wed, 11 Aug 2010 05:30:28 +0000 (01:30 -0400)]
Unionfs: new vfs_statfs and ->evict_inode prototypes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update fsync prototype
Erez Zadok [Fri, 6 Aug 2010 05:48:52 +0000 (01:48 -0400)]
Unionfs: update fsync prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update write_inode prototype
Erez Zadok [Fri, 6 Aug 2010 05:48:45 +0000 (01:48 -0400)]
Unionfs: update write_inode prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.4
Erez Zadok [Fri, 26 Feb 2010 01:36:28 +0000 (20:36 -0500)]
Unionfs: Release 2.5.4

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update copyright year to 2010
Erez Zadok [Fri, 26 Feb 2010 01:23:27 +0000 (20:23 -0500)]
Unionfs: update copyright year to 2010

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agopatch unionfs-remove-unnecessary-lockdep-off-on-in-rmdir.patch
Erez Zadok [Fri, 4 Dec 2009 02:23:24 +0000 (21:23 -0500)]
patch unionfs-remove-unnecessary-lockdep-off-on-in-rmdir.patch

13 years agopatch unionfs-remove-unnecessary-lockdep-off-on-in-rename.patch
Erez Zadok [Fri, 4 Dec 2009 01:58:43 +0000 (20:58 -0500)]
patch unionfs-remove-unnecessary-lockdep-off-on-in-rename.patch

13 years agoUnionfs: unlock lower parent inode correctly on error path
Erez Zadok [Sun, 8 Nov 2009 23:18:56 +0000 (18:18 -0500)]
Unionfs: unlock lower parent inode correctly on error path

Bug fix: on some errors, lower directory inode may remain locked and hold a
reference.  This was in ->create, ->symlink, and ->mknod.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: make our lower_vm_ops pointer a const, to match VFS
Erez Zadok [Thu, 3 Dec 2009 23:51:37 +0000 (18:51 -0500)]
Unionfs: make our lower_vm_ops pointer a const, to match VFS

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoVFS: export release_open_intent
Erez Zadok [Wed, 6 Jan 2010 04:39:25 +0000 (23:39 -0500)]
VFS: export release_open_intent

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.3
Erez Zadok [Tue, 22 Sep 2009 22:22:19 +0000 (18:22 -0400)]
Unionfs: Release 2.5.3

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: handle an open-unlink-ftruncate sequence
Erez Zadok [Tue, 22 Sep 2009 21:27:30 +0000 (17:27 -0400)]
Unionfs: handle an open-unlink-ftruncate sequence

If someone calls open(), then unlink(), then ftruncate() on a file (rare,
but possible), then it's possible for unionfs to get an unlinked inode which
doesn't have an inode->i_sb and its inode->i_ino is zero.  Don't oops in
that case.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: fix readonly nfs2/3 permission handling
Erez Zadok [Tue, 22 Sep 2009 21:27:23 +0000 (17:27 -0400)]
Unionfs: fix readonly nfs2/3 permission handling

In unionfs_permission: NFSv2/3 return EACCES on readonly-exported, locally
readonly-mounted file systems, instead of EROFS like other file systems do.
So we have no choice here but to intercept this and ignore it for NFS
branches marked readonly.  Specifically, we avoid using NFS's own "broken"
->permission method, and rely on generic_permission() to do basic checking
for us.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.2
Erez Zadok [Thu, 6 Aug 2009 19:26:01 +0000 (15:26 -0400)]
Unionfs: Release 2.5.2

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent lockdep false positives in mmap
Erez Zadok [Tue, 26 May 2009 03:15:17 +0000 (23:15 -0400)]
Unionfs: prevent lockdep false positives in mmap

Due to a new (and probably overzealous) lockdep-enabled might_fault().

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: lock base inode mutex around lookup_one_len
Erez Zadok [Fri, 22 May 2009 01:02:31 +0000 (21:02 -0400)]
Unionfs: lock base inode mutex around lookup_one_len

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: merge fixes from rebasing to 2.6.29.
Erez Zadok [Tue, 26 May 2009 04:52:48 +0000 (00:52 -0400)]
Unionfs: merge fixes from rebasing to 2.6.29.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.5.1
Erez Zadok [Mon, 19 Jan 2009 02:22:29 +0000 (21:22 -0500)]
Unionfs: release 2.5.1

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update maintainers
Erez Zadok [Mon, 19 Jan 2009 05:38:32 +0000 (00:38 -0500)]
Unionfs: update maintainers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update copyrights for 2009
Erez Zadok [Mon, 19 Jan 2009 03:22:06 +0000 (22:22 -0500)]
Unionfs: update copyrights for 2009

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: create whiteout in correct dir after rename with copyup
Erez Zadok [Mon, 19 Jan 2009 02:00:46 +0000 (21:00 -0500)]
Unionfs: create whiteout in correct dir after rename with copyup

Fixes bug #625: a file renamed/moved into a directory, if resulted in a
copyup with a whiteout creation, could cause the whiteout to be created in
the wrong dir.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent lockdep false positives in mmap
Erez Zadok [Sat, 17 Jan 2009 08:27:51 +0000 (03:27 -0500)]
Unionfs: prevent lockdep false positives in mmap

Due to a new (and probably overzealous) lockdep-enabled might_fault().

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use path_put in mount code
Erez Zadok [Fri, 7 Nov 2008 21:49:48 +0000 (16:49 -0500)]
Unionfs: use path_put in mount code

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: handle partial copyup errors gracefully
Erez Zadok [Fri, 7 Nov 2008 21:50:16 +0000 (16:50 -0500)]
Unionfs: handle partial copyup errors gracefully

Don't leave any dentries behind if copying up the inode (or setting its
permission, i.e., using TOMOYO) failed.

CC: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use the new struct cred API
Erez Zadok [Tue, 13 Jan 2009 03:02:11 +0000 (22:02 -0500)]
Unionfs: use the new struct cred API

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: dentry_open takes a struct cred now
Erez Zadok [Tue, 13 Jan 2009 03:01:15 +0000 (22:01 -0500)]
Unionfs: dentry_open takes a struct cred now

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoSecurity/VFS: re-export security_inode_permission symbol
Erez Zadok [Tue, 13 Jan 2009 03:16:46 +0000 (22:16 -0500)]
Security/VFS: re-export security_inode_permission symbol

Unionfs needs it because it has to do everything in there, but skip the
EROFS test (so copyup can be triggered).  There's no easy way to execute
parts of security_inode_permission() without copying  and duplicating much
of its functionality, so exporting the symbol seems the simplest.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.5
Erez Zadok [Sat, 20 Sep 2008 14:54:59 +0000 (10:54 -0400)]
Unionfs: release 2.5

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: unionfs_permission locking fixes
Erez Zadok [Thu, 18 Sep 2008 23:55:19 +0000 (19:55 -0400)]
Unionfs: unionfs_permission locking fixes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: file/dentry revalidation fixes
Erez Zadok [Fri, 19 Sep 2008 04:44:00 +0000 (00:44 -0400)]
Unionfs: file/dentry revalidation fixes

Cleanup unnecessary code, merge functions together, and handle situation
where parent dentry may not be valid.

13 years agoUnionfs: remove unused nameidata parameters
Erez Zadok [Wed, 17 Sep 2008 17:52:17 +0000 (13:52 -0400)]
Unionfs: remove unused nameidata parameters

In preparation for the VFS removing most/all nameidata from file systems's
view.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: file_release must always succeed
Erez Zadok [Wed, 17 Sep 2008 15:41:28 +0000 (11:41 -0400)]
Unionfs: file_release must always succeed

Why does f_op->release return an int if the VFS ignores it?!

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove redundant file-invariant check in file_revalidate
Erez Zadok [Wed, 17 Sep 2008 07:29:35 +0000 (03:29 -0400)]
Unionfs: remove redundant file-invariant check in file_revalidate

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: fix readlink/follow_link to add locking
Erez Zadok [Wed, 17 Sep 2008 07:27:35 +0000 (03:27 -0400)]
Unionfs: fix readlink/follow_link to add locking

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: return EINVAL in setattr on error
Erez Zadok [Wed, 17 Sep 2008 07:24:57 +0000 (03:24 -0400)]
Unionfs: return EINVAL in setattr on error

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: just warn in put_super instead of BUG-ing
Erez Zadok [Wed, 17 Sep 2008 07:22:21 +0000 (03:22 -0400)]
Unionfs: just warn in put_super instead of BUG-ing

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agopatch unionfs-cleanup-mntput-calls.patch
Erez Zadok [Thu, 18 Sep 2008 06:27:44 +0000 (02:27 -0400)]
patch unionfs-cleanup-mntput-calls.patch

13 years agoUnionfs: use dget_parent to keep parent dentry stable
Erez Zadok [Tue, 16 Sep 2008 04:59:08 +0000 (00:59 -0400)]
Unionfs: use dget_parent to keep parent dentry stable

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary calls to copy_attr_times
Erez Zadok [Tue, 16 Sep 2008 04:01:53 +0000 (00:01 -0400)]
Unionfs: remove unnecessary calls to copy_attr_times

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: fix off-by-one but in mkdir
Erez Zadok [Sat, 13 Sep 2008 03:16:26 +0000 (23:16 -0400)]
Unionfs: fix off-by-one but in mkdir

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't open unhashed files
Erez Zadok [Tue, 26 Aug 2008 19:07:49 +0000 (15:07 -0400)]
Unionfs: don't open unhashed files

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: initialize lower mnt in lookup after vfs_path_lookup
Erez Zadok [Wed, 20 Aug 2008 17:04:27 +0000 (13:04 -0400)]
Unionfs: initialize lower mnt in lookup after vfs_path_lookup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: drop branchcount on error
Erez Zadok [Thu, 11 Sep 2008 03:41:18 +0000 (23:41 -0400)]
Unionfs: drop branchcount on error

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: add a few more invariant debugging checks
Erez Zadok [Thu, 11 Sep 2008 03:41:10 +0000 (23:41 -0400)]
Unionfs: add a few more invariant debugging checks

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update parent mnt on unlink
Erez Zadok [Thu, 11 Sep 2008 03:41:02 +0000 (23:41 -0400)]
Unionfs: update parent mnt on unlink

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent a privilege escalation during first copyup
Erez Zadok [Wed, 20 Aug 2008 19:42:40 +0000 (15:42 -0400)]
Unionfs: prevent a privilege escalation during first copyup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.4
Erez Zadok [Wed, 30 Jul 2008 01:32:36 +0000 (21:32 -0400)]
Unionfs: release 2.4

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use new kmem_cache_create constructor prototype
Erez Zadok [Mon, 28 Jul 2008 04:29:50 +0000 (00:29 -0400)]
Unionfs: use new kmem_cache_create constructor prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: LOOKUP_ACCESS intent no longer exists
Erez Zadok [Mon, 28 Jul 2008 04:28:58 +0000 (00:28 -0400)]
Unionfs: LOOKUP_ACCESS intent no longer exists

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: permission no longer takes a nameidata parameter
Erez Zadok [Mon, 28 Jul 2008 04:36:13 +0000 (00:36 -0400)]
Unionfs: permission no longer takes a nameidata parameter

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: symlink no longer takes a mode parameter
Erez Zadok [Mon, 28 Jul 2008 04:04:00 +0000 (00:04 -0400)]
Unionfs: symlink no longer takes a mode parameter

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: properly hash newly created inodes
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: properly hash newly created inodes

This fixes LTP's syscalls/rename13 test.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor checkpatch fixes
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: minor checkpatch fixes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update copyrights
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: update copyrights

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update maintainers
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: update maintainers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove old lookup code
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: remove old lookup code

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: cache coherency fixes
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: cache coherency fixes

Handle unhashed or silly-renamed lower dentries properly.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: free lower paths array when destroying dentry's private data
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: free lower paths array when destroying dentry's private data

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: lookup overhaul using vfs_path_lookup
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: lookup overhaul using vfs_path_lookup

Rework the lookup code to use vfs_path_lookup as much as possible, to ensure
that we have a vfsmount at this critical stage.  This is necessary for the
upcoming VFS API change from vfs_* to path_* methods.  This change also
allows unionfs to cross bind mounts and other mounts on lower branches.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: overhaul whiteout code
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: overhaul whiteout code

Move all whiteout functions and helpers into a separate file, replace all
embedded whiteout code with calls to helpers.  Cleanup and consolidate the
code.  This will make it easier to replace the whiteout code with a
Linux-native whiteout implementation (once available).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: simplify stale-inode detection code
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: simplify stale-inode detection code

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: create and consolidate helpers to path-put lower objects
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: create and consolidate helpers to path-put lower objects

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: create and consolidate helpers to iput lower objects
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: create and consolidate helpers to iput lower objects

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: move a rename helper closer to rename code
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: move a rename helper closer to rename code

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: simplify the macros used to get/set the dentry start/end branches
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: simplify the macros used to get/set the dentry start/end branches

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use new umount_begin prototype
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: use new umount_begin prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.3.3
Erez Zadok [Wed, 23 Apr 2008 23:41:26 +0000 (19:41 -0400)]
Unionfs: release 2.3.3

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: lock parent dentry branch config in write
Erez Zadok [Wed, 23 Apr 2008 23:05:59 +0000 (19:05 -0400)]
Unionfs: lock parent dentry branch config in write

Ensure that branch configuration is available to file_revalidate should a
copyup be required.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: set lower file to NULL in file_release
Erez Zadok [Wed, 23 Apr 2008 23:05:50 +0000 (19:05 -0400)]
Unionfs: set lower file to NULL in file_release

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: maintain one-open-file invariant for non-directories
Erez Zadok [Wed, 23 Apr 2008 23:05:40 +0000 (19:05 -0400)]
Unionfs: maintain one-open-file invariant for non-directories

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: reorganize file_revalidate for un/locking callers
Erez Zadok [Wed, 23 Apr 2008 23:05:22 +0000 (19:05 -0400)]
Unionfs: reorganize file_revalidate for un/locking callers

Also clean up deep nesting/indentation.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: copyup only if file is being written to
Erez Zadok [Tue, 15 Apr 2008 17:11:04 +0000 (13:11 -0400)]
Unionfs: copyup only if file is being written to

Before, we used to copyup on an open(2) call which used flags implying
writing (O_RDWR, O_WRONLY, O_APPEND).  This meant that a file being opened
for writing, then immediately closed (without actually writing to the file),
will still have been copied up.  Now, we don't copyup such files in ->open,
but defer the copyup till later. [Bug #591].

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: set append offset correctly for copied-up files
Erez Zadok [Thu, 10 Apr 2008 19:32:26 +0000 (15:32 -0400)]
Unionfs: set append offset correctly for copied-up files

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't dereference dentry without lower branches in d_release
Erez Zadok [Tue, 15 Apr 2008 17:07:44 +0000 (13:07 -0400)]
Unionfs: don't dereference dentry without lower branches in d_release

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: stop as soon as first writeable branch is found
Erez Zadok [Sun, 6 Apr 2008 01:02:23 +0000 (21:02 -0400)]
Unionfs: stop as soon as first writeable branch is found

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: lock inode around calls to notify_change()
Erez Zadok [Thu, 3 Apr 2008 17:56:47 +0000 (13:56 -0400)]
Unionfs: lock inode around calls to notify_change()

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: copy lower times in fsync/fasync only when needed
Erez Zadok [Thu, 3 Apr 2008 17:15:59 +0000 (13:15 -0400)]
Unionfs: copy lower times in fsync/fasync only when needed

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent races in unionfs_fault
Erez Zadok [Tue, 15 Apr 2008 17:05:52 +0000 (13:05 -0400)]
Unionfs: prevent races in unionfs_fault

vm_ops->fault may be called in parallel.  Because we have to resort to
temporarily changing the vma->vm_file to point to the lower file, a
concurrent invocation of unionfs_fault could see a different value.  In this
workaround, we keep a different copy of the vma structure in our stack, so
we never expose a different value of the vma->vm_file called to us, even
temporarily.  A better fix (already tested) would be to change the calling
semantics of ->fault to take an explicit file pointer.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor code cleanups
Erez Zadok [Tue, 15 Apr 2008 19:20:03 +0000 (15:20 -0400)]
Unionfs: minor code cleanups

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.3.2
Erez Zadok [Tue, 1 Apr 2008 02:32:28 +0000 (22:32 -0400)]
Unionfs: release 2.3.2

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update lower mnts on rmdir with copyup
Erez Zadok [Sun, 30 Mar 2008 21:15:08 +0000 (17:15 -0400)]
Unionfs: update lower mnts on rmdir with copyup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't purge lower sb data on remount
Erez Zadok [Sun, 30 Mar 2008 21:11:47 +0000 (17:11 -0400)]
Unionfs: don't purge lower sb data on remount

This is no longer needed, as we don't have upper and lower pages.  Plus this
was racy, requiring the unexported inode_lock variable.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.3.1
Erez Zadok [Wed, 26 Mar 2008 20:25:34 +0000 (16:25 -0400)]
Unionfs: release 2.3.1

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: do not over-decrement lower superblock refs on remount
Erez Zadok [Tue, 25 Mar 2008 21:56:12 +0000 (17:56 -0400)]
Unionfs: do not over-decrement lower superblock refs on remount

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>