lkml.org 
[lkml]   [2011]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] BTRFS: Fix lseek return value for error
    Date
    From: Andi Kleen <ak@linux.intel.com>

    Introduced by 9a4327ca1f45f82edad7dc0a4e52ce9316e0950c

    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    ---
    fs/btrfs/file.c | 13 +++++++------
    1 files changed, 7 insertions(+), 6 deletions(-)

    diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
    index e7872e4..c6e493f 100644
    --- a/fs/btrfs/file.c
    +++ b/fs/btrfs/file.c
    @@ -1814,19 +1814,17 @@ static loff_t btrfs_file_llseek(struct file *file, loff_t offset, int origin)
    case SEEK_DATA:
    case SEEK_HOLE:
    ret = find_desired_extent(inode, &offset, origin);
    - if (ret) {
    - mutex_unlock(&inode->i_mutex);
    - return ret;
    - }
    + if (ret)
    + goto error;
    }

    if (offset < 0 && !(file->f_mode & FMODE_UNSIGNED_OFFSET)) {
    ret = -EINVAL;
    - goto out;
    + goto error;
    }
    if (offset > inode->i_sb->s_maxbytes) {
    ret = -EINVAL;
    - goto out;
    + goto error;
    }

    /* Special lock needed here? */
    @@ -1837,6 +1835,9 @@ static loff_t btrfs_file_llseek(struct file *file, loff_t offset, int origin)
    out:
    mutex_unlock(&inode->i_mutex);
    return offset;
    +error:
    + mutex_unlock(&inode->i_mutex);
    + return ret;
    }

    const struct file_operations btrfs_file_operations = {
    --
    1.7.4.4


    \
     
     \ /
      Last update: 2011-08-22 22:53    [W:3.608 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site