lkml.org 
[lkml]   [2019]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 136/183] jbd2: fix compile warning when using JBUFFER_TRACE
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: zhangyi (F) <yi.zhang@huawei.com>

    commit 01215d3edb0f384ddeaa5e4a22c1ae5ff634149f upstream.

    The jh pointer may be used uninitialized in the two cases below and the
    compiler complain about it when enabling JBUFFER_TRACE macro, fix them.

    In file included from fs/jbd2/transaction.c:19:0:
    fs/jbd2/transaction.c: In function ‘jbd2_journal_get_undo_access’:
    ./include/linux/jbd2.h:1637:38: warning: ‘jh’ is used uninitialized in this function [-Wuninitialized]
    #define JBUFFER_TRACE(jh, info) do { printk("%s: %d\n", __func__, jh->b_jcount);} while (0)
    ^
    fs/jbd2/transaction.c:1219:23: note: ‘jh’ was declared here
    struct journal_head *jh;
    ^
    In file included from fs/jbd2/transaction.c:19:0:
    fs/jbd2/transaction.c: In function ‘jbd2_journal_dirty_metadata’:
    ./include/linux/jbd2.h:1637:38: warning: ‘jh’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    #define JBUFFER_TRACE(jh, info) do { printk("%s: %d\n", __func__, jh->b_jcount);} while (0)
    ^
    fs/jbd2/transaction.c:1332:23: note: ‘jh’ was declared here
    struct journal_head *jh;
    ^

    Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/jbd2/transaction.c | 16 ++++++++--------
    1 file changed, 8 insertions(+), 8 deletions(-)

    --- a/fs/jbd2/transaction.c
    +++ b/fs/jbd2/transaction.c
    @@ -1224,11 +1224,12 @@ int jbd2_journal_get_undo_access(handle_
    struct journal_head *jh;
    char *committed_data = NULL;

    - JBUFFER_TRACE(jh, "entry");
    if (jbd2_write_access_granted(handle, bh, true))
    return 0;

    jh = jbd2_journal_add_journal_head(bh);
    + JBUFFER_TRACE(jh, "entry");
    +
    /*
    * Do this first --- it can drop the journal lock, so we want to
    * make sure that obtaining the committed_data is done
    @@ -1339,15 +1340,17 @@ int jbd2_journal_dirty_metadata(handle_t

    if (is_handle_aborted(handle))
    return -EROFS;
    - if (!buffer_jbd(bh)) {
    - ret = -EUCLEAN;
    - goto out;
    - }
    + if (!buffer_jbd(bh))
    + return -EUCLEAN;
    +
    /*
    * We don't grab jh reference here since the buffer must be part
    * of the running transaction.
    */
    jh = bh2jh(bh);
    + jbd_debug(5, "journal_head %p\n", jh);
    + JBUFFER_TRACE(jh, "entry");
    +
    /*
    * This and the following assertions are unreliable since we may see jh
    * in inconsistent state unless we grab bh_state lock. But this is
    @@ -1381,9 +1384,6 @@ int jbd2_journal_dirty_metadata(handle_t
    }

    journal = transaction->t_journal;
    - jbd_debug(5, "journal_head %p\n", jh);
    - JBUFFER_TRACE(jh, "entry");
    -
    jbd_lock_bh_state(bh);

    if (jh->b_modified == 0) {

    \
     
     \ /
      Last update: 2019-03-22 13:52    [W:2.101 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site