From 49d895fca7758498366328f2f6428b0edca75f77 Mon Sep 17 00:00:00 2001 From: Sebastien Buisson Date: Thu, 6 Jun 2013 14:41:34 +0200 Subject: [PATCH] LU-2744 build: fix 'data race condition' issues 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 Change-Id: I9ce06aee1e5ac033025288ad55bf0c3935a3a9cb Reviewed-on: http://review.whamcloud.com/6574 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Alex Zhuravlev Reviewed-by: Andreas Dilger --- lustre/osp/osp_precreate.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lustre/osp/osp_precreate.c b/lustre/osp/osp_precreate.c index 329ae47..208d912 100644 --- a/lustre/osp/osp_precreate.c +++ b/lustre/osp/osp_precreate.c @@ -721,7 +721,9 @@ out: if (req) ptlrpc_req_finished(req); + spin_lock(&d->opd_pre_lock); d->opd_pre_recovering = 0; + spin_unlock(&d->opd_pre_lock); /* * If rc is zero, the pre-creation window should have been emptied. @@ -795,8 +797,10 @@ void osp_pre_update_status(struct osp_device *d, int rc) 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; + 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: " -- 1.8.3.1