lkml.org 
[lkml]   [2012]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] ecryptfs: Improve metatdata read failure logging
    Date
    There are 3 read failure cases in ecryptfs_read_metadata(), but only 2
    of them are uniquely noted by kernel log messages. This patch
    identifies and logs each read failure case. It also correctly interprets
    a negative return value from ecryptfs_read_lower().

    Removes unnecessary variable initialization.

    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Cc: Tyler Hicks <tyler.hicks@canonical.com>
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    ---
    fs/ecryptfs/crypto.c | 17 +++++++++++------
    1 files changed, 11 insertions(+), 6 deletions(-)

    diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
    index d3c8776..ac063bd 100644
    --- a/fs/ecryptfs/crypto.c
    +++ b/fs/ecryptfs/crypto.c
    @@ -1590,8 +1590,8 @@ int ecryptfs_read_and_validate_xattr_region(struct dentry *dentry,
    */
    int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
    {
    - int rc = 0;
    - char *page_virt = NULL;
    + int rc;
    + char *page_virt;
    struct inode *ecryptfs_inode = ecryptfs_dentry->d_inode;
    struct ecryptfs_crypt_stat *crypt_stat =
    &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat;
    @@ -1611,10 +1611,15 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
    }
    rc = ecryptfs_read_lower(page_virt, 0, crypt_stat->extent_size,
    ecryptfs_inode);
    - if (rc >= 0)
    - rc = ecryptfs_read_headers_virt(page_virt, crypt_stat,
    - ecryptfs_dentry,
    - ECRYPTFS_VALIDATE_HEADER_SIZE);
    + if (rc < 0) {
    + printk(KERN_ERR "%s: Could not read %u bytes\n",
    + __func__, crypt_stat->extent_size);
    + goto out;
    + }
    +
    + rc = ecryptfs_read_headers_virt(page_virt, crypt_stat,
    + ecryptfs_dentry,
    + ECRYPTFS_VALIDATE_HEADER_SIZE);
    if (rc) {
    memset(page_virt, 0, PAGE_CACHE_SIZE);
    rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode);
    --
    1.7.8.3


    \
     
     \ /
      Last update: 2012-01-11 18:03    [W:3.297 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site