aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Gardner <tim.gardner@canonical.com>2012-01-12 10:31:55 -0500
committerTyler Hicks <tyhicks@canonical.com>2012-01-25 15:43:38 -0500
commit30373dc0c87ffef68d5628e77d56ffb1fa22e1ee (patch)
tree77e8589ed03f3e362b728f08bdfd74a54963e54e
parent140941987f8f85ee7c7d4592ecb6667b32f3485d (diff)
ecryptfs: Improve metadata read failure logging
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> Cc: stable@vger.kernel.org Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
-rw-r--r--fs/ecryptfs/crypto.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index 2a834255c75..2bf52033538 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -1620,7 +1620,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
1620 rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode); 1620 rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode);
1621 if (rc) { 1621 if (rc) {
1622 printk(KERN_DEBUG "Valid eCryptfs headers not found in " 1622 printk(KERN_DEBUG "Valid eCryptfs headers not found in "
1623 "file header region or xattr region\n"); 1623 "file header region or xattr region, inode %lu\n",
1624 ecryptfs_inode->i_ino);
1624 rc = -EINVAL; 1625 rc = -EINVAL;
1625 goto out; 1626 goto out;
1626 } 1627 }
@@ -1629,7 +1630,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
1629 ECRYPTFS_DONT_VALIDATE_HEADER_SIZE); 1630 ECRYPTFS_DONT_VALIDATE_HEADER_SIZE);
1630 if (rc) { 1631 if (rc) {
1631 printk(KERN_DEBUG "Valid eCryptfs headers not found in " 1632 printk(KERN_DEBUG "Valid eCryptfs headers not found in "
1632 "file xattr region either\n"); 1633 "file xattr region either, inode %lu\n",
1634 ecryptfs_inode->i_ino);
1633 rc = -EINVAL; 1635 rc = -EINVAL;
1634 } 1636 }
1635 if (crypt_stat->mount_crypt_stat->flags 1637 if (crypt_stat->mount_crypt_stat->flags
@@ -1640,7 +1642,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
1640 "crypto metadata only in the extended attribute " 1642 "crypto metadata only in the extended attribute "
1641 "region, but eCryptfs was mounted without " 1643 "region, but eCryptfs was mounted without "
1642 "xattr support enabled. eCryptfs will not treat " 1644 "xattr support enabled. eCryptfs will not treat "
1643 "this like an encrypted file.\n"); 1645 "this like an encrypted file, inode %lu\n",
1646 ecryptfs_inode->i_ino);
1644 rc = -EINVAL; 1647 rc = -EINVAL;
1645 } 1648 }
1646 } 1649 }