case SEC_CTX_INIT:
case SEC_CTX_INIT_CONT:
case SEC_CTX_FINI:
+ CFS_FAIL_TIMEOUT(OBD_FAIL_SEC_CTX_HDL_PAUSE, cfs_fail_val);
GOTO(out, rc = 0);
}
return err_serious(-EOPNOTSUPP);
}
+int tgt_send_buffer(struct tgt_session_info *tsi, struct lu_rdbuf *rdbuf)
+{
+ struct tgt_thread_info *tti = tgt_th_info(tsi->tsi_env);
+ struct ptlrpc_request *req = tgt_ses_req(tsi);
+ struct obd_export *exp = req->rq_export;
+ struct ptlrpc_bulk_desc *desc;
+ struct l_wait_info *lwi = &tti->tti_u.rdbuf.tti_wait_info;
+ int i;
+ int rc;
+
+ ENTRY;
+
+ desc = ptlrpc_prep_bulk_exp(req, rdbuf->rb_nbufs, 1,
+ PTLRPC_BULK_PUT_SOURCE | PTLRPC_BULK_BUF_KVEC,
+ MDS_BULK_PORTAL, &ptlrpc_bulk_kvec_ops);
+ if (desc == NULL)
+ RETURN(-ENOMEM);
+
+ for (i = 0; i < rdbuf->rb_nbufs; i++)
+ desc->bd_frag_ops->add_iov_frag(desc,
+ rdbuf->rb_bufs[i]->lb_buf,
+ rdbuf->rb_bufs[i]->lb_len);
+
+ rc = target_bulk_io(exp, desc, lwi);
+ ptlrpc_free_bulk(desc);
+ RETURN(rc);
+}
+EXPORT_SYMBOL(tgt_send_buffer);
+
int tgt_sendpage(struct tgt_session_info *tsi, struct lu_rdpg *rdpg, int nob)
{
struct tgt_thread_info *tti = tgt_th_info(tsi->tsi_env);
};
EXPORT_SYMBOL(tgt_llog_handlers);
+/*
+ * sec context handlers
+ */
+/* XXX: Implement based on mdt_sec_ctx_handle()? */
+static int tgt_sec_ctx_handle(struct tgt_session_info *tsi)
+{
+ return 0;
+}
+
+struct tgt_handler tgt_sec_ctx_handlers[] = {
+TGT_SEC_HDL_VAR(0, SEC_CTX_INIT, tgt_sec_ctx_handle),
+TGT_SEC_HDL_VAR(0, SEC_CTX_INIT_CONT, tgt_sec_ctx_handle),
+TGT_SEC_HDL_VAR(0, SEC_CTX_FINI, tgt_sec_ctx_handle),
+};
+EXPORT_SYMBOL(tgt_sec_ctx_handlers);
+
int (*tgt_lfsck_in_notify)(const struct lu_env *env,
struct dt_device *key,
struct lfsck_request *lr,
__u64 start, __u64 end, struct lustre_handle *lh,
int mode, __u64 *flags)
{
- ldlm_policy_data_t policy;
- int rc;
+ union ldlm_policy_data policy;
+ int rc;
ENTRY;
}
EXPORT_SYMBOL(tgt_extent_lock);
-void tgt_extent_unlock(struct lustre_handle *lh, ldlm_mode_t mode)
+void tgt_extent_unlock(struct lustre_handle *lh, enum ldlm_mode mode)
{
LASSERT(lustre_handle_is_used(lh));
ldlm_lock_decref(lh, mode);
int tgt_brw_lock(struct ldlm_namespace *ns, struct ldlm_res_id *res_id,
struct obd_ioobj *obj, struct niobuf_remote *nb,
- struct lustre_handle *lh, int mode)
+ struct lustre_handle *lh, enum ldlm_mode mode)
{
__u64 flags = 0;
int nrbufs = obj->ioo_bufcnt;
}
void tgt_brw_unlock(struct obd_ioobj *obj, struct niobuf_remote *niob,
- struct lustre_handle *lh, int mode)
+ struct lustre_handle *lh, enum ldlm_mode mode)
{
ENTRY;