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-571 ldlm: add parallel ast flow control
[fs/lustre-release.git]
/
lustre
/
ldlm
/
ldlm_lockd.c
diff --git
a/lustre/ldlm/ldlm_lockd.c
b/lustre/ldlm/ldlm_lockd.c
index
af7c6c4
..
d009a1f
100644
(file)
--- a/
lustre/ldlm/ldlm_lockd.c
+++ b/
lustre/ldlm/ldlm_lockd.c
@@
-650,7
+650,6
@@
static int ldlm_cb_interpret(const struct lu_env *env,
struct ldlm_cb_async_args *ca = data;
struct ldlm_lock *lock = ca->ca_lock;
struct ldlm_cb_set_arg *arg = ca->ca_set_arg;
struct ldlm_cb_async_args *ca = data;
struct ldlm_lock *lock = ca->ca_lock;
struct ldlm_cb_set_arg *arg = ca->ca_set_arg;
- struct ptlrpc_request_set *set = arg->set;
ENTRY;
LASSERT(lock != NULL);
ENTRY;
LASSERT(lock != NULL);
@@
-663,7
+662,8
@@
static int ldlm_cb_interpret(const struct lu_env *env,
}
LDLM_LOCK_RELEASE(lock);
}
LDLM_LOCK_RELEASE(lock);
- cfs_waitq_signal(&set->set_waitq);
+ if (cfs_atomic_dec_return(&arg->rpcs) < arg->threshold)
+ cfs_waitq_signal(&arg->waitq);
RETURN(0);
}
RETURN(0);
}
@@
-682,8
+682,8
@@
static inline int ldlm_bl_and_cp_ast_tail(struct ptlrpc_request *req,
cfs_atomic_inc(&arg->restart);
} else {
LDLM_LOCK_GET(lock);
cfs_atomic_inc(&arg->restart);
} else {
LDLM_LOCK_GET(lock);
- ptlrpc
_set_add_req(arg->set, req
);
-
++arg->rpcs
;
+ ptlrpc
d_add_req(req, PDL_POLICY_ROUND, -1
);
+
cfs_atomic_inc(&arg->rpcs)
;
}
RETURN(rc);
}
RETURN(rc);