eCryptfs: Use notify_change for truncating lower inodes
authorTyler Hicks <tyhicks@linux.vnet.ibm.com>
Wed, 14 Oct 2009 21:18:27 +0000 (16:18 -0500)
committerTyler Hicks <tyhicks@linux.vnet.ibm.com>
Wed, 20 Jan 2010 04:32:07 +0000 (22:32 -0600)
commit5f3ef64f4da1c587cdcfaaac72311225b7df094c
tree0bdf086980df60d73bc650cdc520b59029faaa5a
parent24bc7347da73a9ed3383056c3d0f28c0e361621e
eCryptfs: Use notify_change for truncating lower inodes

When truncating inodes in the lower filesystem, eCryptfs directly
invoked vmtruncate(). As Christoph Hellwig pointed out, vmtruncate() is
a filesystem helper function, but filesystems may need to do more than
just a call to vmtruncate().

This patch moves the lower inode truncation out of ecryptfs_truncate()
and renames the function to truncate_upper().  truncate_upper() updates
an iattr for the lower inode to indicate if the lower inode needs to be
truncated upon return.  ecryptfs_setattr() then calls notify_change(),
using the updated iattr for the lower inode, to complete the truncation.

For eCryptfs functions needing to truncate, ecryptfs_truncate() is
reintroduced as a simple way to truncate the upper inode to a specified
size and then truncate the lower inode accordingly.

https://bugs.launchpad.net/bugs/451368

Reported-by: Christoph Hellwig <hch@lst.de>
Acked-by: Dustin Kirkland <kirkland@canonical.com>
Cc: ecryptfs-devel@lists.launchpad.net
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
fs/ecryptfs/inode.c