unionfs-2.6.28.y.git
11 years agoUnionfs: Release 2.6 master
Erez Zadok [Sat, 23 Aug 2014 04:21:52 +0000 (00:21 -0400)]
Unionfs: Release 2.6

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: support asynchronous-IO (AIO) operations
Erez Zadok [Tue, 12 Aug 2014 02:27:23 +0000 (22:27 -0400)]
Unionfs: support asynchronous-IO (AIO) operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
11 years agoUnionfs: support direct-IO (DIO) operations
Erez Zadok [Tue, 12 Aug 2014 02:27:23 +0000 (22:27 -0400)]
Unionfs: support direct-IO (DIO) operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
11 years agoUnionfs: fix d_revalidate for corner case
Erez Zadok [Tue, 12 Aug 2014 02:27:23 +0000 (22:27 -0400)]
Unionfs: fix d_revalidate for corner case

In some cases, lower_dentry may goes to NULL.  Return 0 here to mark it
as invalid dentry.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
11 years agoUnionfs: update mmap.c to compile
Erez Zadok [Thu, 19 Jun 2014 23:05:16 +0000 (19:05 -0400)]
Unionfs: update mmap.c to compile

11 years agoUnionfs: implement vm_ops->page_mkwrite
Erez Zadok [Thu, 15 May 2014 05:11:15 +0000 (01:11 -0400)]
Unionfs: implement vm_ops->page_mkwrite

Some file systems (e.g., ext4) require it.  Reported by Ted Ts'o.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: update maintainers
Erez Zadok [Thu, 3 Apr 2014 18:43:48 +0000 (14:43 -0400)]
Unionfs: update maintainers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: Release 2.5.13
Erez Zadok [Fri, 28 Mar 2014 15:04:29 +0000 (11:04 -0400)]
Unionfs: Release 2.5.13

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: 2014 Copyright update
Erez Zadok [Tue, 21 Jan 2014 06:15:23 +0000 (01:15 -0500)]
Unionfs: 2014 Copyright update

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: Release 2.5.12
Erez Zadok [Wed, 27 Nov 2013 05:31:41 +0000 (00:31 -0500)]
Unionfs: Release 2.5.12

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoUnionfs: copyright update for 2013
Erez Zadok [Wed, 27 Nov 2013 04:30:30 +0000 (23:30 -0500)]
Unionfs: copyright update for 2013

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.11
Erez Zadok [Mon, 6 Feb 2012 02:37:26 +0000 (21:37 -0500)]
Unionfs: Release 2.5.11

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: Release 2.5.10
Erez Zadok [Wed, 7 Sep 2011 04:31:44 +0000 (00:31 -0400)]
Unionfs: Release 2.5.10

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: debug - don't complain when d_deleted dentries
Erez Zadok [Tue, 6 Sep 2011 03:26:31 +0000 (23:26 -0400)]
Unionfs: debug - don't complain when d_deleted dentries

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: define some debug macros to noop if DEBUG is off
Erez Zadok [Tue, 6 Sep 2011 01:39:35 +0000 (21:39 -0400)]
Unionfs: define some debug macros to noop if DEBUG is off

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: force only one open lower file after copyup in open(2)
Erez Zadok [Tue, 6 Sep 2011 01:38:35 +0000 (21:38 -0400)]
Unionfs: force only one open lower file after copyup in open(2)

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: find lower inode of unlinked opened files in setattr
Erez Zadok [Tue, 6 Sep 2011 01:20:36 +0000 (21:20 -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: remove whiteout if regular file also exists
Erez Zadok [Tue, 6 Sep 2011 01:20:36 +0000 (21:20 -0400)]
Unionfs: remove whiteout if regular file also exists

We used to return EIO then, but it's safer to cleanup such a situation, if
it occurs, in check_unlink_whiteout, because we know for a fact that we want
to delete a whiteout if one exists.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove whiteout of opened but unlinked file from readonly branch
Erez Zadok [Tue, 6 Sep 2011 01:20:36 +0000 (21:20 -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>
14 years agoUnionfs: Release 2.5.9.2 unionfs-2.5.9.2
Erez Zadok [Sat, 25 Jun 2011 22:57:40 +0000 (18:57 -0400)]
Unionfs: Release 2.5.9.2

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
14 years agoUnionfs: Release 2.5.9.1 unionfs-2.5.9.1
Erez Zadok [Sat, 14 May 2011 02:29:37 +0000 (22:29 -0400)]
Unionfs: Release 2.5.9.1

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
14 years agoUnionfs: Release 2.5.9 unionfs-2.5.9
Erez Zadok [Sun, 1 May 2011 05:20:47 +0000 (01:20 -0400)]
Unionfs: Release 2.5.9

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
14 years agoUnionfs: copyright update for 2011
Erez Zadok [Sun, 1 May 2011 05:19:47 +0000 (01:19 -0400)]
Unionfs: copyright update for 2011

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
14 years agoUnionfs: Release 2.5.8 master_top unionfs-2.5.8
Erez Zadok [Sun, 6 Mar 2011 21:57:53 +0000 (16:57 -0500)]
Unionfs: Release 2.5.8

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
14 years agoUnionfs: ->setattr fixes
Erez Zadok [Sun, 6 Mar 2011 20:58:35 +0000 (15:58 -0500)]
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>
14 years agoUnionfs: don't dereference null pointers if dir="" was given master_bottom
Erez Zadok [Fri, 10 Dec 2010 03:03:45 +0000 (22:03 -0500)]
Unionfs: don't dereference null pointers if dir="" was given

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

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

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
15 years agoUnionfs: Release 2.5.5 unionfs-2.5.5
Erez Zadok [Wed, 11 Aug 2010 05:57:17 +0000 (01:57 -0400)]
Unionfs: Release 2.5.5

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

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

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
15 years agoUnionfs: unlock lower parent inode correctly on error path
Erez Zadok [Fri, 4 Dec 2009 00:00:52 +0000 (19:00 -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>
15 years agoUnionfs: Release 2.5.3 unionfs-2.5.3
Erez Zadok [Tue, 22 Sep 2009 21:54:30 +0000 (17:54 -0400)]
Unionfs: Release 2.5.3

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
15 years agoUnionfs: handle an open-unlink-ftruncate sequence
Erez Zadok [Tue, 22 Sep 2009 21:46:01 +0000 (17:46 -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>
15 years agoUnionfs: fix readonly nfs2/3 permission handling
Erez Zadok [Tue, 22 Sep 2009 21:35:36 +0000 (17:35 -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>
16 years agoUnionfs: release 2.5.2 unionfs-2.5.2
Erez Zadok [Wed, 10 Jun 2009 16:27:49 +0000 (12:27 -0400)]
Unionfs: release 2.5.2

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

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

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
16 years agoUnionfs: create whiteout in correct dir after rename with copyup
Erez Zadok [Mon, 19 Jan 2009 02:01:28 +0000 (21:01 -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>
16 years agoUnionfs: use path_put in mount code
Erez Zadok [Tue, 13 Jan 2009 04:10:32 +0000 (23:10 -0500)]
Unionfs: use path_put in mount code

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
16 years agoUnionfs: handle partial copyup errors gracefully
Erez Zadok [Tue, 13 Jan 2009 04:01:18 +0000 (23:01 -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>
16 years agoSecurity/VFS: re-export security_inode_permission symbol
Erez Zadok [Tue, 13 Jan 2009 03:15:49 +0000 (22:15 -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>
16 years agoUnionfs: release 2.5 unionfs-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>
16 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>
16 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.

16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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

16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 years agoUnionfs: release 2.4 unionfs-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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 years agoLTP's iogen01 doio tests used to hang nicely on 32-bit SMP when /tmp was a
Hugh Dickins [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
LTP's iogen01 doio tests used to hang nicely on 32-bit SMP when /tmp was a

unionfs mount of a tmpfs, i_size_read spinning forever, waiting for a lost
seqcount update: fixed by taking i_lock around i_size_write when 32-bit
SMP.

But akpm was dissatisfied with the resulting patch: its lack of
commentary, the #ifs, the nesting around i_size_read, the lack of
attention to i_blocks.  I promised to redo it with the general
spin_lock_32bit() he proposed; but disliked the result, partly because
"32bit" obscures the real constraints, which are best commented within
fsstack_copy_inode_size itself.

This version adds those comments, and uses sizeof comparisons which the
compiler can optimize out, instead of CONFIG_SMP, CONFIG_LSF.
BITS_PER_LONG.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Cc: Erez Zadok <ezk@cs.sunysb.edu>
Cc: Michael Halcrow <mhalcrow@us.ibm.com>
Cc: <hooanon05@yahoo.co.jp>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 years agoUnionfs: move fs/Makefile entry up to minimize merge conflicts
Erez Zadok [Mon, 28 Jul 2008 04:25:46 +0000 (00:25 -0400)]
Unionfs: move fs/Makefile entry up to minimize merge conflicts

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
16 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>
16 years agoUnionfs: release 2.3.3 unionfs-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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 years agoUnionfs: release 2.3.2 unionfs-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>
16 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>
16 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>
16 years agoUnionfs: release 2.3.1 unionfs-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>