Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-5397 obdclass: optimize busy loop wait
[fs/lustre-release.git]
/
lustre
/
obdclass
/
obd_config.c
diff --git
a/lustre/obdclass/obd_config.c
b/lustre/obdclass/obd_config.c
index
645e5aa
..
3914193
100644
(file)
--- a/
lustre/obdclass/obd_config.c
+++ b/
lustre/obdclass/obd_config.c
@@
-624,16
+624,12
@@
int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg)
}
/* Leave this on forever */
obd->obd_stopping = 1;
}
/* Leave this on forever */
obd->obd_stopping = 1;
+ spin_unlock(&obd->obd_dev_lock);
/* wait for already-arrived-connections to finish. */
/* wait for already-arrived-connections to finish. */
- while (obd->obd_conn_inprogress > 0) {
- spin_unlock(&obd->obd_dev_lock);
-
- cond_resched();
-
- spin_lock(&obd->obd_dev_lock);
- }
- spin_unlock(&obd->obd_dev_lock);
+ while (obd->obd_conn_inprogress > 0)
+ yield();
+ smp_rmb();
if (lcfg->lcfg_bufcount >= 2 && LUSTRE_CFG_BUFLEN(lcfg, 1) > 0) {
for (flag = lustre_cfg_string(lcfg, 1); *flag != 0; flag++)
if (lcfg->lcfg_bufcount >= 2 && LUSTRE_CFG_BUFLEN(lcfg, 1) > 0) {
for (flag = lustre_cfg_string(lcfg, 1); *flag != 0; flag++)