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.
Signed-off-by: Sebastien Buisson <sebastien.buisson@bull.net>
Change-Id: I9ce06aee1e5ac033025288ad55bf0c3935a3a9cb
Reviewed-on: http://review.whamcloud.com/6574
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
if (req)
ptlrpc_req_finished(req);
if (req)
ptlrpc_req_finished(req);
+ spin_lock(&d->opd_pre_lock);
d->opd_pre_recovering = 0;
d->opd_pre_recovering = 0;
+ spin_unlock(&d->opd_pre_lock);
/*
* If rc is zero, the pre-creation window should have been emptied.
/*
* If rc is zero, the pre-creation window should have been emptied.
d->opd_syn_changes, d->opd_syn_rpc_in_progress);
} else if (old == -ENOSPC) {
d->opd_pre_status = 0;
d->opd_syn_changes, d->opd_syn_rpc_in_progress);
} else if (old == -ENOSPC) {
d->opd_pre_status = 0;
+ spin_lock(&d->opd_pre_lock);
d->opd_pre_grow_slow = 0;
d->opd_pre_grow_count = OST_MIN_PRECREATE;
d->opd_pre_grow_slow = 0;
d->opd_pre_grow_count = OST_MIN_PRECREATE;
+ spin_unlock(&d->opd_pre_lock);
cfs_waitq_signal(&d->opd_pre_waitq);
CDEBUG(D_INFO, "%s: no space: "LPU64" blocks, "LPU64
" free, "LPU64" used, "LPU64" avail -> %d: "
cfs_waitq_signal(&d->opd_pre_waitq);
CDEBUG(D_INFO, "%s: no space: "LPU64" blocks, "LPU64
" free, "LPU64" used, "LPU64" avail -> %d: "