[lustre-devel] [PATCH 38/49] lustre: lmv: don't use lqr_alloc spinlock in lmv
James Simmons
jsimmons at infradead.org
Wed Apr 14 21:02:30 PDT 2021
From: Mr NeilBrown <neilb at suse.de>
The only place the lrq_alloc spinlock is used in lmv is in
lmv_locate_tgt_rr(). The purpose here is presumably to protect
lmv_qos_rr_index from concurrent updates. This is a field that is
only tangentially related the the structure that holds the spinlock.
lmv_qos_rr_index is directly in 'struct lmv_obd' while lqr_alloc
is in struct lu_qos_rr which is in struct lu_qos, which is in lmv_obd.
As there is a spinlock in 'struct lmv_obd' (lmv_lock) it makes more
sense to use that to protect lmv_qos_rr_index. Then the entire
lu_qos_rr structure will be unused on the client and can be made
server-only.
WC-bug-id: https://jira.whamcloud.com/browse/LU-8837
Lustre-commit: 3e14a71d87efde0 ("U-8837 lmv: don't use lqr_alloc spinlock in lmv")
Signed-off-by: Mr NeilBrown <neilb at suse.de>
Reviewed-on: https://review.whamcloud.com/41949
Reviewed-by: Lai Siyao <lai.siyao at whamcloud.com>
Reviewed-by: James Simmons <jsimmons at infradead.org>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
fs/lustre/lmv/lmv_obd.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/lustre/lmv/lmv_obd.c b/fs/lustre/lmv/lmv_obd.c
index 9c0a0cf..6555c6e 100644
--- a/fs/lustre/lmv/lmv_obd.c
+++ b/fs/lustre/lmv/lmv_obd.c
@@ -1493,7 +1493,7 @@ static struct lu_tgt_desc *lmv_locate_tgt_rr(struct lmv_obd *lmv, u32 *mdt)
int i;
int index;
- spin_lock(&lmv->lmv_qos.lq_rr.lqr_alloc);
+ spin_lock(&lmv->lmv_lock);
for (i = 0; i < lmv->lmv_mdt_descs.ltd_tgts_size; i++) {
index = (i + lmv->lmv_qos_rr_index) %
lmv->lmv_mdt_descs.ltd_tgts_size;
@@ -1504,11 +1504,11 @@ static struct lu_tgt_desc *lmv_locate_tgt_rr(struct lmv_obd *lmv, u32 *mdt)
*mdt = tgt->ltd_index;
lmv->lmv_qos_rr_index = (*mdt + 1) %
lmv->lmv_mdt_descs.ltd_tgts_size;
- spin_unlock(&lmv->lmv_qos.lq_rr.lqr_alloc);
+ spin_unlock(&lmv->lmv_lock);
return tgt;
}
- spin_unlock(&lmv->lmv_qos.lq_rr.lqr_alloc);
+ spin_unlock(&lmv->lmv_lock);
return ERR_PTR(-ENODEV);
}
--
1.8.3.1
More information about the lustre-devel
mailing list