lkml.org 
[lkml]   [2017]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 212/294] gfs2: remove IS_ERR_VALUE abuse
    3.16.50-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Arnd Bergmann <arnd@arndb.de>

    Picked from commit 287980e49ffc0f6d911601e7e352a812ed27768e ("remove lots
    of IS_ERR_VALUE abuses") upstream.

    The original fix that was backported to 3.18 already addressed the warning
    in some configurations, but not in others, leaving us with the same output:

    ../fs/gfs2/dir.c: In function 'get_first_leaf':
    ../fs/gfs2/dir.c:768:9: warning: 'leaf_no' may be used uninitialized in this function [-Wmaybe-uninitialized]
    error = get_leaf(dip, leaf_no, bh_out);
    ^
    ../fs/gfs2/dir.c: In function 'dir_split_leaf.isra.20':
    ../fs/gfs2/dir.c:987:8: warning: 'leaf_no' may be used uninitialized in this function [-Wmaybe-uninitialized]

    This takes the approach that we took in later versions in mainline,
    but does not backport the entire patch, as that would be too large
    for stable and IIRC caused regressions in other drivers.

    Fixes: 9d46d31e9aea ("gfs2: avoid uninitialized variable warning")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    fs/gfs2/dir.c | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    --- a/fs/gfs2/dir.c
    +++ b/fs/gfs2/dir.c
    @@ -749,12 +749,15 @@ static int get_leaf_nr(struct gfs2_inode
    u64 *leaf_out)
    {
    __be64 *hash;
    + int error;

    hash = gfs2_dir_get_hash_table(dip);
    - if (IS_ERR(hash))
    - return PTR_ERR(hash);
    - *leaf_out = be64_to_cpu(*(hash + index));
    - return 0;
    + error = PTR_ERR_OR_ZERO(hash);
    +
    + if (!error)
    + *leaf_out = be64_to_cpu(*(hash + index));
    +
    + return error;
    }

    static int get_first_leaf(struct gfs2_inode *dip, u32 index,
    \
     
     \ /
      Last update: 2017-11-08 21:00    [W:4.466 / U:0.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site