cli->cl_cksum_type = cli->cl_supp_cksum_types = OBD_CKSUM_CRC32;
#endif
cfs_atomic_set(&cli->cl_resends, OSC_DEFAULT_RESENDS);
- cfs_atomic_set(&cli->cl_quota_resends, CLIENT_QUOTA_DEFAULT_RESENDS);
/* This value may be changed at connect time in
ptlrpc_connect_interpret. */
cfs_atomic_inc(&req->rq_refcount);
/** let export know it has replays to be handled */
cfs_atomic_inc(&req->rq_export->exp_replay_count);
+ /* release service thread while request is queued
+ * we are moving the request from active processing
+ * to waiting on the replay queue */
+ ptlrpc_server_active_request_dec(req);
}
static void target_request_copy_put(struct ptlrpc_request *req)
LASSERT(cfs_atomic_read(&req->rq_export->exp_replay_count) > 0);
cfs_atomic_dec(&req->rq_export->exp_replay_count);
class_export_rpc_put(req->rq_export);
+ /* ptlrpc_server_drop_request() assumes the request is active */
+ ptlrpc_server_active_request_inc(req);
ptlrpc_server_drop_request(req);
}
if (!new_client && service_time)
/* Teach server about old server's estimates, as first guess
* at how long new requests will take. */
- at_add(&req->rq_rqbd->rqbd_service->srv_at_estimate,
- service_time);
+ at_measured(&req->rq_rqbd->rqbd_service->srv_at_estimate,
+ service_time);
check_and_start_recovery_timer(obd);
int rc = 0;
ENTRY;
- cfs_daemonize("tgt_recov");
+ cfs_daemonize_ctxt("tgt_recov");
SIGNAL_MASK_LOCK(current, flags);
sigfillset(¤t->blocked);
}
#endif /* HAVE_QUOTA_SUPPORT */
-/* Send a remote set_info_async.
- * This may go from client to server or server to client
- */
-int target_set_info_rpc(struct obd_import *imp, int opcode,
- obd_count keylen, void *key,
- obd_count vallen, void *val,
- struct ptlrpc_request_set *set)
-{
- struct ptlrpc_request *req;
- char *tmp;
- int rc;
- ENTRY;
-
- req = ptlrpc_request_alloc(imp, &RQF_OBD_SET_INFO);
- if (req == NULL)
- RETURN(-ENOMEM);
-
- req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_KEY,
- RCL_CLIENT, keylen);
- req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_VAL,
- RCL_CLIENT, vallen);
- rc = ptlrpc_request_pack(req, LUSTRE_OBD_VERSION, opcode);
- if (rc) {
- ptlrpc_request_free(req);
- RETURN(rc);
- }
-
- tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_KEY);
- memcpy(tmp, key, keylen);
- tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_VAL);
- memcpy(tmp, val, vallen);
-
- ptlrpc_request_set_replen(req);
-
- if (set) {
- ptlrpc_set_add_req(set, req);
- ptlrpc_check_set(NULL, set);
- } else {
- rc = ptlrpc_queue_wait(req);
- ptlrpc_req_finished(req);
- }
-
- RETURN(rc);
-}
-EXPORT_SYMBOL(target_set_info_rpc);
-
-
ldlm_mode_t lck_compat_array[] = {
[LCK_EX] LCK_COMPAT_EX,
[LCK_PW] LCK_COMPAT_PW,