struct ptlrpc_request *req = NULL;
struct mds_kml_pack_info *mkpi;
struct mds_rec_setattr *rec;
- struct mdc_op_data op_data;
+ struct mdc_op_data *op_data;
struct lustre_msg *msg;
int ea1len, ea2len;
struct iattr iattr;
RETURN(rc);
}
- cmobd_prepare_mdc_data(&op_data, &rec->sa_id, NULL,
+ OBD_ALLOC(op_data, sizeof(*op_data));
+ if (op_data == NULL)
+ RETURN(-ENOMEM);
+ cmobd_prepare_mdc_data(op_data, &rec->sa_id, NULL,
NULL, 0, 0);
/* handling possible EAs. */
ea2 = lustre_msg_buf(msg, 2, 0);
ea2len = ea2 ? msg->buflens[2] : 0;
- rc = md_setattr(cmobd->master_exp, &op_data, &iattr,
+ rc = md_setattr(cmobd->master_exp, op_data, &iattr,
ea1, ea1len, ea2, ea2len, &req);
+ OBD_FREE(op_data, sizeof(*op_data));
if (req)
ptlrpc_req_finished(req);
struct mds_kml_pack_info *mkpi;
int rc = 0, namelen, datalen;
struct mds_rec_create *rec;
- struct mdc_op_data op_data;
+ struct mdc_op_data *op_data;
struct lustre_msg *msg;
struct mds_body *body;
struct lustre_id lid;
data = (char *)lustre_msg_buf(msg, 2, 0);
datalen = data ? msg->buflens[2] : 0;
+ OBD_ALLOC(op_data, sizeof(*op_data));
+ if (op_data == NULL)
+ RETURN(-ENOMEM);
+
/* prepare mdc request data. */
- cmobd_prepare_mdc_data(&op_data, &rec->cr_id, &rec->cr_replayid,
+ cmobd_prepare_mdc_data(op_data, &rec->cr_id, &rec->cr_replayid,
name, namelen, rec->cr_mode);
/* requesting to master to create object with passed attributes. */
- rc = md_create(cmobd->master_exp, &op_data, data, datalen,
+ rc = md_create(cmobd->master_exp, op_data, data, datalen,
rec->cr_mode, current->fsuid, current->fsgid,
rec->cr_rdev, &req);
+ OBD_FREE(op_data, sizeof(*op_data));
if (!rc) {
/* here we save store cookie from master MDS to local
struct cm_obd *cmobd = &obd->u.cm;
struct ptlrpc_request *req = NULL;
struct mds_kml_pack_info *mkpi;
- struct mdc_op_data op_data;
+ struct mdc_op_data *op_data;
struct mds_rec_unlink *rec;
struct lustre_msg *msg;
int rc = 0, namelen;
name = lustre_msg_string(msg, 1, 0);
namelen = name ? msg->buflens[1] - 1 : 0;
+ OBD_ALLOC(op_data, sizeof(*op_data));
+ if (op_data == NULL)
+ RETURN(-ENOMEM);
+
/* prepare mdc request data. */
- cmobd_prepare_mdc_data(&op_data, &rec->ul_id1, NULL,
+ cmobd_prepare_mdc_data(op_data, &rec->ul_id1, NULL,
name, namelen, rec->ul_mode);
- rc = md_unlink(cmobd->master_exp, &op_data, &req);
+ rc = md_unlink(cmobd->master_exp, op_data, &req);
+ OBD_FREE(op_data, sizeof(*op_data));
if (req)
ptlrpc_req_finished(req);
struct cm_obd *cmobd = &obd->u.cm;
struct ptlrpc_request *req = NULL;
struct mds_kml_pack_info *mkpi;
- struct mdc_op_data op_data;
+ struct mdc_op_data *op_data;
struct mds_rec_link *rec;
struct lustre_msg *msg;
int rc = 0, namelen;
name = lustre_msg_string(msg, 1, 0);
namelen = name ? msg->buflens[1] - 1: 0;
+ OBD_ALLOC(op_data, sizeof(*op_data));
+ if (op_data == NULL)
+ RETURN(-ENOMEM);
+
/* prepare mdc request data. */
- cmobd_prepare_mdc_data(&op_data, &rec->lk_id1, &rec->lk_id2,
+ cmobd_prepare_mdc_data(op_data, &rec->lk_id1, &rec->lk_id2,
name, namelen, 0);
- rc = md_link(cmobd->master_exp, &op_data, &req);
+ rc = md_link(cmobd->master_exp, op_data, &req);
+ OBD_FREE(op_data, sizeof(*op_data));
if (req)
ptlrpc_req_finished(req);
struct cm_obd *cmobd = &obd->u.cm;
struct ptlrpc_request *req = NULL;
struct mds_kml_pack_info *mkpi;
- struct mdc_op_data op_data;
+ struct mdc_op_data *op_data;
struct mds_rec_rename *rec;
int rc = 0, oldlen, newlen;
struct lustre_msg *msg;
new = lustre_msg_string(msg, 2, 0);
newlen = new ? msg->buflens[2] - 1: 0;
+ OBD_ALLOC(op_data, sizeof(*op_data));
+ if (op_data == NULL)
+ RETURN(-ENOMEM);
+
/* prepare mdc request data. */
- cmobd_prepare_mdc_data(&op_data, &rec->rn_id1, &rec->rn_id1,
+ cmobd_prepare_mdc_data(op_data, &rec->rn_id1, &rec->rn_id1,
NULL, 0, 0);
- rc = md_rename(cmobd->master_exp, &op_data, old, oldlen,
+ rc = md_rename(cmobd->master_exp, op_data, old, oldlen,
new, newlen, &req);
+ OBD_FREE(op_data, sizeof(*op_data));
if (req)
ptlrpc_req_finished(req);