unionfs-2.6.39.y.git
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>
13 years agoUnionfs: release 2.3
Erez Zadok [Tue, 25 Mar 2008 00:24:52 +0000 (20:24 -0400)]
Unionfs: release 2.3

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: display mount point name along with generation number
Erez Zadok [Mon, 24 Mar 2008 21:29:42 +0000 (17:29 -0400)]
Unionfs: display mount point name along with generation number

CC: Dave Miller <justdave@mozilla.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: document reasons for opaque directories
Erez Zadok [Sun, 23 Mar 2008 05:16:33 +0000 (01:16 -0400)]
Unionfs: document reasons for opaque directories

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use noinline_for_stack
Erez Zadok [Sun, 23 Mar 2008 02:55:45 +0000 (22:55 -0400)]
Unionfs: use noinline_for_stack

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use __func__ instead of __FUNCTION__
Erez Zadok [Sun, 23 Mar 2008 01:47:35 +0000 (21:47 -0400)]
Unionfs: use __func__ instead of __FUNCTION__

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't copy parent inode times in setattr
Erez Zadok [Fri, 21 Mar 2008 20:02:19 +0000 (16:02 -0400)]
Unionfs: don't copy parent inode times in setattr

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: reduce number of whiteouts by deleting all instances of files
Erez Zadok [Sun, 23 Mar 2008 02:49:29 +0000 (22:49 -0400)]
Unionfs: reduce number of whiteouts by deleting all instances of files

Optimize the unlinking of non-dir objects in unionfs by deleting all
possible lower inode objects from all writable lower branches.  This may
consume a bit more processing, but on average reduces overall inode
consumption and further saves a lot by reducing the total number of
whiteouts needed.  We create a whiteout now only if we could not delete all
lower objects, or if one of the lower branches was explicitly marked
read-only.

Signed-off-by: Himanshu Kanda <hkanda@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: lock our dentry in file operations
Erez Zadok [Sun, 23 Mar 2008 06:05:01 +0000 (02:05 -0400)]
Unionfs: lock our dentry in file operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: implement vm_operations->fault
Erez Zadok [Sat, 22 Mar 2008 03:37:44 +0000 (23:37 -0400)]
Unionfs: implement vm_operations->fault

As per recommendations made at LSF'08, a stackable file system which does
not change the data across layers, should try to use vm_operations instead
of address_space_operations.  This means we now have to implement out own
->read and ->write methods because we cannot rely on VFS helpers which
require us to have a ->readpage method.  Either way there are two caveats:

(1) It's not possible currently to set inode->i_mapping->a_ops to NULL,
because too many code paths expect i_mapping to be non-NULL.

(2) a small/dummy ->readpage is still needed because generic_file_mmap,
which we used in unionfs_mmap, still check for the existence of the
->readpage method.  These code paths may have to be changed to remove the
need for readpage().

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: implement splice_read/write methods directly
Erez Zadok [Fri, 21 Mar 2008 20:07:59 +0000 (16:07 -0400)]
Unionfs: implement splice_read/write methods directly

Must implement splice_read/write directly, using VFS helpers, because we can
no longer rely on generic_file_splice_read/write: they need
address_space_operations implemented, which we no longer have.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoVFS: rename do_splice_to/from to vfs_splice_* and export symbols
Erez Zadok [Fri, 21 Mar 2008 20:04:42 +0000 (16:04 -0400)]
VFS: rename do_splice_to/from to vfs_splice_* and export symbols

A stackable file system which uses vm_ops->fault, and does not implement
address_space_operations, cannot use generic_file_splice_read/write, but has
to implement ->splice_read/write itself.  These two helper functions are
very useful to such a module.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoVFS: export release_open_intent as GPL symbol, not regular symbol
Erez Zadok [Tue, 25 Mar 2008 00:44:54 +0000 (20:44 -0400)]
VFS: export release_open_intent as GPL symbol, not regular symbol

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.2.4
Erez Zadok [Sat, 16 Feb 2008 04:08:04 +0000 (23:08 -0500)]
Unionfs: release 2.2.4

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoVFS/Unionfs: use generic path_get/path_put functions
Erez Zadok [Fri, 15 Feb 2008 23:42:43 +0000 (18:42 -0500)]
VFS/Unionfs: use generic path_get/path_put functions

Remove unionfs's versions thereof.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use the new path_put
Jan Blunck [Fri, 15 Feb 2008 23:47:28 +0000 (18:47 -0500)]
Unionfs: use the new path_put

* Add path_put() functions for releasing a reference to the dentry and
  vfsmount of a struct path in the right order

* Switch from path_release(nd) to path_put(&nd->path)

* Rename dput_path() to path_put_conditional()

Signed-off-by: Jan Blunck <jblunck@suse.de>
Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: embed a struct path into struct nameidata instead of nd dentrymnt
Andrew Morton [Fri, 15 Feb 2008 23:45:45 +0000 (18:45 -0500)]
Unionfs: embed a struct path into struct nameidata instead of nd dentrymnt

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: stop using iget() and read_inode()
David Howells [Fri, 15 Feb 2008 22:18:48 +0000 (17:18 -0500)]
Unionfs: stop using iget() and read_inode()

Replace unionfs_read_inode() with unionfs_iget(), and call that instead of
iget().  unionfs_iget() then uses iget_locked() directly and returns a
proper error code instead of an inode in the event of an error.

unionfs_fill_super() returns any error incurred when getting the root inode
instead of EINVAL.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>