RETURN(rc);
}
-static int cml_open(const struct lu_context *ctx, struct md_object *mo,
+static int cml_open(const struct lu_context *ctx, struct md_object *mo,
int flags)
{
int rc;
RETURN(-EFAULT);
}
-static int cmr_open(const struct lu_context *ctx, struct md_object *mo,
+static int cmr_open(const struct lu_context *ctx, struct md_object *mo,
int flags)
{
RETURN(-EREMOTE);
struct txn_param sti_txn;
struct req_capsule sti_pill;
struct seq_store_record sti_record;
- int sti_rep_buf_size[4];
+ int sti_rep_buf_size[REQ_MAX_FIELD_NR];
};
extern struct lu_context_key seq_thread_key;
#ifdef __KERNEL__
struct fld_thread_info {
struct req_capsule fti_pill;
- int fti_rep_buf_size[4];
+ int fti_rep_buf_size[REQ_MAX_FIELD_NR];
__u64 fti_key;
__u64 fti_rec;
};
int *rc_area;
};
+enum {
+ /*
+ * Maximal number of fields (buffers) in a request message.
+ */
+ REQ_MAX_FIELD_NR = 8
+};
+
#if !defined(__REQ_LAYOUT_USER__)
/* struct ptlrpc_request, lustre_msg* */
};
enum {
- MDT_REP_BUF_NR_MAX = 8
-};
-
-enum {
MDT_LH_PARENT,
MDT_LH_CHILD,
MDT_LH_OLD,
/*
* sizes of reply buffers.
*/
- int mti_rep_buf_size[MDT_REP_BUF_NR_MAX];
+ int mti_rep_buf_size[REQ_MAX_FIELD_NR];
/*
* Body for "habeo corpus" operations.
*/
rf = (struct req_format *)req_formats[i];
rf->rf_idx = i;
for (j = 0; j < RCL_NR; ++j) {
+ LASSERT(rf->rf_fields[j].nr <= REQ_MAX_FIELD_NR);
for (k = 0; k < rf->rf_fields[j].nr; ++k) {
struct req_msg_field *field;
}
EXPORT_SYMBOL(req_layout_fini);
+/*
+ * Initialize capsule.
+ *
+ * @area is an array of REQ_MAX_FIELD_NR elements, used to store sizes of
+ * variable-sized fields.
+ */
void req_capsule_init(struct req_capsule *pill,
struct ptlrpc_request *req, enum req_location location,
int *area)