unionfs-2.6.39.y.git
13 years agoUnionfs: set our superblock a/m/ctime granularity
Erez Zadok [Sun, 23 Dec 2007 00:43:03 +0000 (19:43 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: handle on lower inodes in lookup
Erez Zadok [Fri, 28 Dec 2007 18:46:14 +0000 (13:46 -0500)]
Unionfs: handle on lower inodes in lookup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor code rearrangement in rename
Erez Zadok [Wed, 26 Dec 2007 05:10:37 +0000 (00:10 -0500)]
Unionfs: minor code rearrangement in rename

To avoid too much code nesting.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: implement lockdep classes
Erez Zadok [Fri, 28 Dec 2007 18:38:09 +0000 (13:38 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent false lockdep warnings in stacking
Erez Zadok [Thu, 27 Dec 2007 18:35:36 +0000 (13:35 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary parent lock in create
Erez Zadok [Tue, 25 Dec 2007 20:41:08 +0000 (15:41 -0500)]
Unionfs: remove unnecessary parent lock in create

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary locking in follow-link
Erez Zadok [Tue, 25 Dec 2007 20:40:23 +0000 (15:40 -0500)]
Unionfs: remove unnecessary locking in follow-link

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary lock in read_inode
Erez Zadok [Fri, 21 Dec 2007 04:14:44 +0000 (23:14 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary lock when deleting whiteouts
Erez Zadok [Fri, 21 Dec 2007 04:10:19 +0000 (23:10 -0500)]
Unionfs: remove unnecessary lock when deleting whiteouts

Lockdep complained, because we eventually call vfs_unlink which'd grab the
necessary locks.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary conditional inode lock
Erez Zadok [Thu, 20 Dec 2007 20:22:22 +0000 (15:22 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent deadlock in cache coherency
Erez Zadok [Fri, 21 Dec 2007 04:08:13 +0000 (23:08 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove custom read/write methods
Erez Zadok [Tue, 25 Dec 2007 04:07:20 +0000 (23:07 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: restructure unionfs_setattr and fix truncation order
Hugh Dickins [Fri, 28 Dec 2007 18:41:39 +0000 (13:41 -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 <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: mmap fixes
Hugh Dickins [Tue, 25 Dec 2007 20:31:13 +0000 (15:31 -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 <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release special files on copyup
Erez Zadok [Wed, 19 Dec 2007 00:14:46 +0000 (19:14 -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 <ezk@cs.sunysb.edu>
13 years agoUnionfs: create new symlinks only in first branch
Erez Zadok [Tue, 18 Dec 2007 23:57:24 +0000 (18:57 -0500)]
Unionfs: create new symlinks only in first branch

When creating a new symlink, always create it in the first branch, which is
always writeable, not in the branch which may have a whiteout in it.  This
makes the policy for the creation of new symlinks consistent with that of
new files/directories, as well as improves efficiency a bit.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: create new special files only in first branch
Erez Zadok [Tue, 18 Dec 2007 23:56:55 +0000 (18:56 -0500)]
Unionfs: create new special files only in first branch

When creating a new special file, always create it in the first branch,
which is always writeable, not in the branch which may have a whiteout in
it.  This makes the policy for the creation of new special files consistent
with that of new files/directories, as well as improves efficiency a bit.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: initialize inode times for reused inodes
Erez Zadok [Tue, 18 Dec 2007 06:06:30 +0000 (01:06 -0500)]
Unionfs: initialize inode times for reused inodes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: interpose cleanup and fix for spliced dentries
Erez Zadok [Fri, 21 Dec 2007 03:40:38 +0000 (22:40 -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 <rachita@fsl.cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: clarify usage.txt read/write behavior
Erez Zadok [Fri, 28 Dec 2007 19:08:11 +0000 (14:08 -0500)]
Unionfs: clarify usage.txt read/write behavior

CC: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use locking around i_size_write in 32-bit systems
Erez Zadok [Fri, 21 Dec 2007 05:27:47 +0000 (00:27 -0500)]
Unionfs: use locking around i_size_write in 32-bit systems

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: clarify usage.txt mount options
Erez Zadok [Thu, 13 Dec 2007 22:11:30 +0000 (17:11 -0500)]
Unionfs: clarify usage.txt mount options

CC: Jim Kissel <jlk@osml.eu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: avoid using drop_pagecache_sb in remount
Erez Zadok [Wed, 12 Dec 2007 17:31:26 +0000 (12:31 -0500)]
Unionfs: avoid using drop_pagecache_sb in remount

Exporting drop_pagecache_sb to modules is somewhat risky because one cannot
sleep inside invalidate_mapping_pages.  This could cause a lot of latency in
the pre-emption code.  So don't export this symbol to minimize the risk that
others will use it.

Instead, unionfs will try to directly invalidate as many pages it can from
the unionfs_remount code.  Invalidating those inode pages is not strictly
required, but helpful in encouraging a revalidation of inodes sooner than
waiting for individual f/s ops to access the union.  Since a remount is
already an expensive but rare operation, this inode pages invalidation
shouldn't add too much overhead.

CC: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.11
Erez Zadok [Sat, 8 Dec 2007 18:47:57 +0000 (13:47 -0500)]
Unionfs: release 2.1.11

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: reduce the amount of cache-coherency debugging messages
Erez Zadok [Sat, 8 Dec 2007 00:44:02 +0000 (19:44 -0500)]
Unionfs: reduce the amount of cache-coherency debugging messages

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: cleanup/consolidate branch-mode parsing code
Erez Zadok [Fri, 7 Dec 2007 21:09:24 +0000 (16:09 -0500)]
Unionfs: cleanup/consolidate branch-mode parsing code

Also a bug fix: disallow unrecognized branch modes at mount time, instead of
defaulting to "rw".

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: call wait_on_page_writeback before clear_page_dirty_for_io
Erez Zadok [Tue, 27 Nov 2007 00:11:38 +0000 (19:11 -0500)]
Unionfs: call wait_on_page_writeback before clear_page_dirty_for_io

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.10
Erez Zadok [Mon, 26 Nov 2007 03:40:07 +0000 (22:40 -0500)]
Unionfs: release 2.1.10

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use generic_file_aio_read/write
Erez Zadok [Sun, 25 Nov 2007 18:35:54 +0000 (13:35 -0500)]
Unionfs: use generic_file_aio_read/write

There's no apparent need to define our own aio_read/write methods.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update our inode size correctly upon partial write
Erez Zadok [Sun, 25 Nov 2007 18:34:04 +0000 (13:34 -0500)]
Unionfs: update our inode size correctly upon partial write

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: prevent multiple writers to lower_page
Erez Zadok [Sun, 25 Nov 2007 19:51:56 +0000 (14:51 -0500)]
Unionfs: prevent multiple writers to lower_page

Without this patch, the LTP fs test "rwtest04" triggers a
BUG_ON(PageWriteback(page)) in fs/buffer.c:1706.

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: support splice(2)
Erez Zadok [Sun, 25 Nov 2007 01:05:47 +0000 (20:05 -0500)]
Unionfs: support splice(2)

Also remove redundant variable from unionfs_readpage (saves a bit on stack
space).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: reintroduce a bmap method
Erez Zadok [Sat, 24 Nov 2007 21:43:36 +0000 (16:43 -0500)]
Unionfs: reintroduce a bmap method

This is needed for swapon(2) files in the union.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update times in setattr
Erez Zadok [Sat, 24 Nov 2007 21:03:14 +0000 (16:03 -0500)]
Unionfs: update times in setattr

Needed to maintain Unix semantics via utimes(2).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: create opaque directories' whiteouts unconditionally
Erez Zadok [Mon, 26 Nov 2007 04:01:28 +0000 (23:01 -0500)]
Unionfs: create opaque directories' whiteouts unconditionally

Needed to maintain Unix semantics (LTP testing).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't create whiteouts on rightmost branch
Erez Zadok [Sun, 25 Nov 2007 20:48:40 +0000 (15:48 -0500)]
Unionfs: don't create whiteouts on rightmost branch

If we are unlinking/rmdir'ing an object on the  rightmost branch, there's no
need to  create a whiteout there: this saves on storage space and inodes.
Also, in the (degenerate) case of having only one branch, this really saves
on whiteouts.

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release lower resources on successful rmdir
Erez Zadok [Sun, 25 Nov 2007 20:47:57 +0000 (15:47 -0500)]
Unionfs: release lower resources on successful rmdir

This patch prevents those resources from lingering around until memory
pressure would have forced them out.  The patch also properly handles
directories that have been rmdir'ed which are still some process's cwd.

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove useless debugging messages
Erez Zadok [Sat, 24 Nov 2007 07:55:21 +0000 (02:55 -0500)]
Unionfs: remove useless debugging messages

These are considered normal behaviour, they don't really reveal any insight
to the person debugging the code, and they tend to clutter console messages.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: handle whiteouts more efficiently in filldir
Erez Zadok [Wed, 21 Nov 2007 03:29:20 +0000 (22:29 -0500)]
Unionfs: handle whiteouts more efficiently in filldir

If we cache a dirent for file "foo", and then it gets deleted, then we look
for a ".wh.foo" whiteout entry in the same dirent cache.  But our dirent
cache strips the ".wh." prefix, thus looking for an entry named "foo" whose
filldir_node->whiteout should be 1 instead of 0.  In that case, don't
display  an incorrect printk  message that the file system may be corrupt,
but set that filldir_node->whiteout to 1.

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: set lower mnt after mkdir which resulted in copyup
Erez Zadok [Wed, 21 Nov 2007 03:23:08 +0000 (22:23 -0500)]
Unionfs: set lower mnt after mkdir which resulted in copyup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor cleanup in the debugging infrastructure
Erez Zadok [Sat, 24 Nov 2007 07:09:28 +0000 (02:09 -0500)]
Unionfs: minor cleanup in the debugging infrastructure

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor coding standards applied
Erez Zadok [Mon, 19 Nov 2007 01:46:16 +0000 (20:46 -0500)]
Unionfs: minor coding standards applied

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor cleanup in writepage
Hugh Dickins [Mon, 19 Nov 2007 01:26:05 +0000 (20:26 -0500)]
Unionfs: minor cleanup in writepage

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use f_path instead of f_dentry/mnt
Erez Zadok [Mon, 19 Nov 2007 01:23:08 +0000 (20:23 -0500)]
Unionfs: use f_path instead of f_dentry/mnt

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: cleaner support for RT patches
Erez Zadok [Thu, 22 Nov 2007 02:55:53 +0000 (21:55 -0500)]
Unionfs: cleaner support for RT patches

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.9
Erez Zadok [Tue, 13 Nov 2007 03:55:22 +0000 (22:55 -0500)]
Unionfs: release 2.1.9

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: move debugging checks inside locks
Erez Zadok [Mon, 12 Nov 2007 00:40:49 +0000 (19:40 -0500)]
Unionfs: move debugging checks inside locks

This is to ensure that the objects we want to check aren't being destroyed
or changed by another thread.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: fold do_readpage into unionfs_readpage
Erez Zadok [Tue, 13 Nov 2007 01:36:20 +0000 (20:36 -0500)]
Unionfs: fold do_readpage into unionfs_readpage

Simplify the code and reduce stack pressure a bit.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary lower atime updates
Erez Zadok [Sun, 11 Nov 2007 23:34:34 +0000 (18:34 -0500)]
Unionfs: remove unnecessary lower atime updates

No need for this because our readpage calls vfs_read on the lower objects,
which would update the atime as/if needed.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: debugging updates
Erez Zadok [Tue, 13 Nov 2007 01:35:58 +0000 (20:35 -0500)]
Unionfs: debugging updates

Don't perform dentry+inode checks unless both are valid.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: clear partial read in readpage
Erez Zadok [Fri, 9 Nov 2007 15:27:32 +0000 (10:27 -0500)]
Unionfs: clear partial read in readpage

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: writepage updates
Erez Zadok [Tue, 13 Nov 2007 01:34:28 +0000 (20:34 -0500)]
Unionfs: writepage updates

Don't set/reset the PageUptodate flag on our page.  Call flush_dcache_page
on the lower page after copy_highpage, and set it uptodate.  Call
set_page_dirty right before clear_page_dirty_for_io.

CC: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update cache-coherency detection heuristics
Erez Zadok [Sun, 11 Nov 2007 01:20:58 +0000 (20:20 -0500)]
Unionfs: update cache-coherency detection heuristics

Use a small delay to reduce the number of times unionfs has to detect
changed mtime's/ctime's, and also reduce the potential for false positives.
See Documentation/filesystems/unionfs/concepts.txt for a detailed
discussion.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use i_size wrappers
Erez Zadok [Sat, 10 Nov 2007 21:01:38 +0000 (16:01 -0500)]
Unionfs: use i_size wrappers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: flush and release updates
Erez Zadok [Sun, 11 Nov 2007 03:01:16 +0000 (22:01 -0500)]
Unionfs: flush and release updates

Remove the totalopens counter which was intended to reduce unnecessary
processing of d_deleted dentries.  Move that processing from file_release to
flush.

Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.8
Erez Zadok [Fri, 2 Nov 2007 23:45:30 +0000 (19:45 -0400)]
Unionfs: release 2.1.8

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs/VFS: no need to export 2 symbols in security/security.c
Erez Zadok [Fri, 2 Nov 2007 23:56:49 +0000 (19:56 -0400)]
Unionfs/VFS: no need to export 2 symbols in security/security.c

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't printk an error if it's due to common copyup
Erez Zadok [Thu, 1 Nov 2007 05:38:09 +0000 (01:38 -0400)]
Unionfs: don't printk an error if it's due to common copyup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't bother validating inode if it has no lower branches
Erez Zadok [Thu, 1 Nov 2007 04:41:03 +0000 (00:41 -0400)]
Unionfs: don't bother validating inode if it has no lower branches

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: avoid a deadlock during branch-management on a pivot_root'ed union
Erez Zadok [Fri, 2 Nov 2007 01:27:54 +0000 (21:27 -0400)]
Unionfs: avoid a deadlock during branch-management on a pivot_root'ed union

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Acked-by: Herton Ronaldo Krzesinski <herton@mandriva.com>
13 years agoUnionfs: mmap updates
Erez Zadok [Wed, 31 Oct 2007 23:04:26 +0000 (19:04 -0400)]
Unionfs: mmap updates

Rewrite unionfs_writepage to minimize dependence on AOP_WRITEPAGE_ACTIVEATE,
handle memory pressure better, and update documentation.  Remove
unionfs_sync_page because it's not needed.

CC: Hugh Dickins <hugh@veritas.com>
CC: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update usage.txt documention
Erez Zadok [Mon, 29 Oct 2007 00:24:34 +0000 (20:24 -0400)]
Unionfs: update usage.txt documention

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: cleanup permission checking code
Erez Zadok [Fri, 2 Nov 2007 00:33:12 +0000 (20:33 -0400)]
Unionfs: cleanup permission checking code

Use vfs helpers and avoid redundant checks performed by the VFS already.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: delete whiteouts in sticky directories
Erez Zadok [Mon, 29 Oct 2007 00:24:39 +0000 (20:24 -0400)]
Unionfs: delete whiteouts in sticky directories

This is needed to maintain Unix semantics.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.7
Erez Zadok [Fri, 19 Oct 2007 00:35:06 +0000 (20:35 -0400)]
Unionfs: release 2.1.7

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove obsolete #define and comment
Erez Zadok [Sun, 21 Oct 2007 20:06:42 +0000 (16:06 -0400)]
Unionfs: remove obsolete #define and comment

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: fix unionfs_setattr to handle ATTR_KILL_S*ID
Jeff Layton [Fri, 19 Oct 2007 04:44:00 +0000 (00:44 -0400)]
Unionfs: fix unionfs_setattr to handle ATTR_KILL_S*ID

Don't allow unionfs_setattr to trip the BUG() in notify_change. Clear
ATTR_MODE if the either ATTR_KILL_S*ID is set. This also allows the
lower filesystem to interpret these bits in its own way.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Cc: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Cc: 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: remove for_writepages nfs workaround
Erez Zadok [Thu, 18 Oct 2007 21:16:51 +0000 (17:16 -0400)]
Unionfs: remove for_writepages nfs workaround

This is no longer necessary since struct writeback_control no longer has a
fs_private field which lower file systems (esp. nfs) use.  Plus, unionfs now
defines its own ->writepages method.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: convert a printk to pr_debug in release
Erez Zadok [Thu, 18 Oct 2007 18:03:16 +0000 (14:03 -0400)]
Unionfs: convert a printk to pr_debug in release

This is mostly an informational message, not an error.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't bother validating dentry if it has no lower branches
Erez Zadok [Wed, 17 Oct 2007 21:35:02 +0000 (17:35 -0400)]
Unionfs: don't bother validating dentry if it has no lower branches

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: don't printk trivial message upon normal rename-copyup
Erez Zadok [Wed, 17 Oct 2007 20:37:51 +0000 (16:37 -0400)]
Unionfs: don't printk trivial message upon normal rename-copyup

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: support lower filesystems without writeback capability
Erez Zadok [Tue, 16 Oct 2007 14:50:16 +0000 (10:50 -0400)]
Unionfs: support lower filesystems without writeback capability

Implement unionfs_writepages.  As per
mm/filemap.c:__filemap_fdatawrite_range(), don't call our writepage if the
lower mapping has BDI_CAP_NO_WRITEBACK capability set.

Signed-off-by: Pekka J Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: slab api remove useless ctor parameter and reorder parameters
Andrew Morton [Thu, 18 Oct 2007 19:54:55 +0000 (15:54 -0400)]
Unionfs: slab api remove useless ctor parameter and reorder parameters

fs/unionfs/super.c: In function 'unionfs_init_inode_cache':
fs/unionfs/super.c:874: warning: passing argument 5 of 'kmem_cache_create' from incompatible pointer type

Cc: Christoph Lameter <clameter@sgi.com>
Cc: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: security convert lsm into a static interface fix
Andrew Morton [Thu, 18 Oct 2007 19:50:15 +0000 (15:50 -0400)]
Unionfs: security convert lsm into a static interface fix

ERROR: "security_inode_permission" [fs/unionfs/unionfs.ko] undefined!
ERROR: "security_file_ioctl" [fs/unionfs/unionfs.ko] undefined!

Need these back.

Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: James Morris <jmorris@namei.org>
Cc: Stephen Smalley <sds@tycho.nsa.gov>
Cc: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.6
Erez Zadok [Sun, 30 Sep 2007 19:04:31 +0000 (15:04 -0400)]
Unionfs: release 2.1.6

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: coding style: avoid lines longer than 80 chars
Erez Zadok [Sun, 30 Sep 2007 17:47:14 +0000 (13:47 -0400)]
Unionfs: coding style: avoid lines longer than 80 chars

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: coding style: miscellaneous fixes
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: coding style: miscellaneous fixes

No braces around single-statement if's.
No externs in .c files.
use <linux/mman.h> not <asm/mman.h>.
Use (foo *) not (foo*).

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: coding style: avoid multiple assignments on same line
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: coding style: avoid multiple assignments on same line

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: coding style: take assignments out of "if" conditions
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: coding style: take assignments out of "if" conditions

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: coding style: proper spacing
Erez Zadok [Sun, 30 Sep 2007 17:11:16 +0000 (13:11 -0400)]
Unionfs: coding style: proper spacing

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use braces in both branches of conditionals
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: use braces in both branches of conditionals

As per CodingStyle, if one branch of an if-then-else has braces because it
has multiple statements, then the other branch should have braces too, even
if the other branch has only one statement in it.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove periods from the end of printk strings
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: remove periods from the end of printk strings

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: update/assign a KERN_* level to all printk statements
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: update/assign a KERN_* level to all printk statements

Also use pr_info() instead of printk(KERN_INFO ...)

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: add missing newlines in printk's
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: add missing newlines in printk's

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: convert all appropriate printk's to pr_debug calls
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: convert all appropriate printk's to pr_debug calls

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use pr_debug() instead of custom dprintk()
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: use pr_debug() instead of custom dprintk()

Also turn on DEBUG if CONFIG_UNION_FS_DEBUG is on

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use page_offset() helper
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: use page_offset() helper

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: remove unnecessary if condition
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: remove unnecessary if condition

The condition is always true there.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: properly indent static struct
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: properly indent static struct

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use UNIONFS_NAME macro
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: use UNIONFS_NAME macro

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use consistent printk prefixes
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: use consistent printk prefixes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: minor comment cleanups
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: minor comment cleanups

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: compile if debug is off
Erez Zadok [Sat, 29 Sep 2007 05:36:57 +0000 (01:36 -0400)]
Unionfs: compile if debug is off

Signed-of-by: John Johansen <jjohansen@suse.de>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agopatch unionfs_undo_unnecessary_unlikely_calls
Erez Zadok [Fri, 28 Sep 2007 03:55:57 +0000 (23:55 -0400)]
patch unionfs_undo_unnecessary_unlikely_calls

13 years agoUnionfs: display informational messages only if debug is on
Erez Zadok [Fri, 28 Sep 2007 03:45:46 +0000 (23:45 -0400)]
Unionfs: display informational messages only if debug is on

This is to avoid filling the console/logs with messages that are primarily
of debugging use.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
13 years agoUnionfs: release 2.1.5
Erez Zadok [Wed, 26 Sep 2007 02:39:53 +0000 (22:39 -0400)]
Unionfs: release 2.1.5

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: use poison.h for safe poison pointers
Erez Zadok [Wed, 26 Sep 2007 02:14:43 +0000 (22:14 -0400)]
Unionfs: use poison.h for safe poison pointers

This also fixes a compile warning on 64-bit systems.

Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: add un/likely conditionals on xattr ops
Erez Zadok [Tue, 25 Sep 2007 04:44:44 +0000 (00:44 -0400)]
Unionfs: add un/likely conditionals on xattr ops

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: add un/likely conditionals on unlink ops
Erez Zadok [Tue, 25 Sep 2007 04:44:44 +0000 (00:44 -0400)]
Unionfs: add un/likely conditionals on unlink ops

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
13 years agoUnionfs: add un/likely conditionals on common subr
Erez Zadok [Mon, 24 Sep 2007 06:22:53 +0000 (02:22 -0400)]
Unionfs: add un/likely conditionals on common subr

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