• Tyler Hicks's avatar
    eCryptfs: Handle failed metadata read in lookup · 3aeb86ea
    Tyler Hicks authored
    When failing to read the lower file's crypto metadata during a lookup,
    eCryptfs must continue on without throwing an error. For example, there
    may be a plaintext file in the lower mount point that the user wants to
    delete through the eCryptfs mount.
    
    If an error is encountered while reading the metadata in lookup(), the
    eCryptfs inode's size could be incorrect. We must be sure to reread the
    plaintext inode size from the metadata when performing an open() or
    setattr(). The metadata is already being read in those paths, so this
    adds minimal performance overhead.
    
    This patch introduces a flag which will track whether or not the
    plaintext inode size has been read so that an incorrect i_size can be
    fixed in the open() or setattr() paths.
    
    https://bugs.launchpad.net/bugs/509180
    
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarTyler Hicks <tyhicks@linux.vnet.ibm.com>
    3aeb86ea
inode.c 32.2 KB