]> git.baikalelectronics.ru Git - kernel.git/commit
eCryptfs: Handle failed metadata read in lookup
authorTyler Hicks <tyhicks@linux.vnet.ibm.com>
Tue, 15 Mar 2011 19:54:00 +0000 (14:54 -0500)
committerTyler Hicks <tyhicks@linux.vnet.ibm.com>
Mon, 25 Apr 2011 23:45:06 +0000 (18:45 -0500)
commit8010c18dde5b2dab8d363261492f9173693960d2
tree6219c664f7938fa8e5e8a2efa93aab7bcc38c12f
parent4beeaa7957111b9976a963d3c25a2a5d56803282
eCryptfs: Handle failed metadata read in lookup

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: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
fs/ecryptfs/crypto.c
fs/ecryptfs/ecryptfs_kernel.h
fs/ecryptfs/file.c
fs/ecryptfs/inode.c