#warning FIXME: pack only valid fields instead of memcpy, endianness, valid
memcpy(&body->oa, oa, sizeof(*oa));
- /* overload the blocks and size fields in the oa with start/end */
-#warning FIXME: endianness, size=start, blocks=end?
- body->oa.o_blocks = start;
- body->oa.o_size = end;
- body->oa.o_valid |= OBD_MD_FLBLOCKS | OBD_MD_FLSIZE;
+ /* overload the size and blocks fields in the oa with start/end */
+ body->oa.o_size = HTON__u64(start);
+ body->oa.o_blocks = HTON__u64(end);
+ body->oa.o_valid |= HTON__u32(OBD_MD_FLSIZE | OBD_MD_FLBLOCKS);
request->rq_replen = lustre_msg_size(1, &size);
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_getattr(conn, &repbody->oa, NULL);
RETURN(0);
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_open(conn, &repbody->oa, NULL);
RETURN(0);
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_close(conn, &repbody->oa, NULL);
RETURN(0);
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_create(conn, &repbody->oa, NULL);
RETURN(0);
body = lustre_msg_buf(req->rq_reqmsg, 0);
- if (!(body->oa.o_valid & OBD_MD_FLSIZE) ||
- !(body->oa.o_valid & OBD_MD_FLBLOCKS))
+ if (NTOH__u32(body->oa.o_valid) & (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS) !=
+ (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS))
RETURN(-EINVAL);
rc = lustre_pack_msg(1, &size, NULL, &req->rq_replen, &req->rq_repmsg);
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_punch(conn, &repbody->oa, NULL,
- repbody->oa.o_blocks, repbody->oa.o_size);
+ repbody->oa.o_size, repbody->oa.o_blocks);
RETURN(0);
}
RETURN(rc);
repbody = lustre_msg_buf(req->rq_repmsg, 0);
+ /* FIXME: unpack only valid fields instead of memcpy, endianness */
memcpy(&repbody->oa, &body->oa, sizeof(body->oa));
req->rq_status = obd_setattr(conn, &repbody->oa, NULL);
RETURN(0);