• Tyler Hicks's avatar
    eCryptfs: Use notify_change for truncating lower inodes · 5f3ef64f
    Tyler Hicks authored
    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/451368Reported-by: default avatarChristoph Hellwig <hch@lst.de>
    Acked-by: default avatarDustin Kirkland <kirkland@canonical.com>
    Cc: ecryptfs-devel@lists.launchpad.net
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: default avatarTyler Hicks <tyhicks@linux.vnet.ibm.com>
    5f3ef64f
inode.c 33.6 KB