lkml.org 
[lkml]   [2013]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 20/39] staging/lustre/build: fix 'data race condition' issues
    Date
    From: Sebastien Buisson <sebastien.buisson@bull.net>

    Fix 'data race condition' defects found by Coverity version
    6.5.0:
    Data race condition (MISSING_LOCK)
    Accessing variable without holding lock. Elsewhere,
    this variable is accessed with lock held.

    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2744
    Lustre-change: http://review.whamcloud.com/6567
    Signed-off-by: Sebastien Buisson <sebastien.buisson@bull.net>
    Reviewed-by: Liang Zhen <liang.zhen@intel.com>
    Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
    Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
    Signed-off-by: Peng Tao <bergwolf@gmail.com>
    Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
    ---
    drivers/staging/lustre/lnet/selftest/conrpc.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
    index 4d48c77..d600823 100644
    --- a/drivers/staging/lustre/lnet/selftest/conrpc.c
    +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
    @@ -938,8 +938,12 @@ lstcon_sesnew_stat_reply(lstcon_rpc_trans_t *trans,
    return status;

    if (!trans->tas_feats_updated) {
    - trans->tas_feats_updated = 1;
    - trans->tas_features = reply->msg_ses_feats;
    + spin_lock(&console_session.ses_rpc_lock);
    + if (!trans->tas_feats_updated) { /* recheck with lock */
    + trans->tas_feats_updated = 1;
    + trans->tas_features = reply->msg_ses_feats;
    + }
    + spin_unlock(&console_session.ses_rpc_lock);
    }

    if (reply->msg_ses_feats != trans->tas_features) {
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2013-11-14 19:01    [W:4.825 / U:0.640 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site