| From 30373dc0c87ffef68d5628e77d56ffb1fa22e1ee Mon Sep 17 00:00:00 2001 |
| From: Tim Gardner <tim.gardner@canonical.com> |
| Date: Thu, 12 Jan 2012 16:31:55 +0100 |
| Subject: ecryptfs: Improve metadata read failure logging |
| |
| From: Tim Gardner <tim.gardner@canonical.com> |
| |
| commit 30373dc0c87ffef68d5628e77d56ffb1fa22e1ee upstream. |
| |
| Print inode on metadata read failure. The only real |
| way of dealing with metadata read failures is to delete |
| the underlying file system file. Having the inode |
| allows one to 'find . -inum INODE`. |
| |
| [tyhicks@canonical.com: Removed some minor not-for-stable parts] |
| Signed-off-by: Tim Gardner <tim.gardner@canonical.com> |
| Reviewed-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Tyler Hicks <tyhicks@canonical.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/ecryptfs/crypto.c | 9 ++++++--- |
| 1 file changed, 6 insertions(+), 3 deletions(-) |
| |
| --- a/fs/ecryptfs/crypto.c |
| +++ b/fs/ecryptfs/crypto.c |
| @@ -1620,7 +1620,8 @@ int ecryptfs_read_metadata(struct dentry |
| rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode); |
| if (rc) { |
| printk(KERN_DEBUG "Valid eCryptfs headers not found in " |
| - "file header region or xattr region\n"); |
| + "file header region or xattr region, inode %lu\n", |
| + ecryptfs_inode->i_ino); |
| rc = -EINVAL; |
| goto out; |
| } |
| @@ -1629,7 +1630,8 @@ int ecryptfs_read_metadata(struct dentry |
| ECRYPTFS_DONT_VALIDATE_HEADER_SIZE); |
| if (rc) { |
| printk(KERN_DEBUG "Valid eCryptfs headers not found in " |
| - "file xattr region either\n"); |
| + "file xattr region either, inode %lu\n", |
| + ecryptfs_inode->i_ino); |
| rc = -EINVAL; |
| } |
| if (crypt_stat->mount_crypt_stat->flags |
| @@ -1640,7 +1642,8 @@ int ecryptfs_read_metadata(struct dentry |
| "crypto metadata only in the extended attribute " |
| "region, but eCryptfs was mounted without " |
| "xattr support enabled. eCryptfs will not treat " |
| - "this like an encrypted file.\n"); |
| + "this like an encrypted file, inode %lu\n", |
| + ecryptfs_inode->i_ino); |
| rc = -EINVAL; |
| } |
| } |