void mdc_readdir_pack(struct ptlrpc_request *req, int offset, __u64 pg_off,
__u32 size, struct ll_fid *mdc_fid);
void mdc_getattr_pack(struct ptlrpc_request *req, int offset, __u64 valid,
- int flags, struct mdc_op_data *data);
+ int flags, struct mdc_op_data *data, int ea_size);
void mdc_setattr_pack(struct ptlrpc_request *req, int offset,
struct mdc_op_data *data,
struct iattr *iattr, void *ea, int ealen,
}
static void mdc_getattr_pack_18(struct ptlrpc_request *req, int offset,
- __u64 valid, int flags, struct mdc_op_data *data)
+ __u64 valid, int flags,
+ struct mdc_op_data *data)
{
struct mds_body *b;
ENTRY;
}
static void mdc_getattr_pack_20(struct ptlrpc_request *req, int offset,
- __u64 valid, int flags, struct mdc_op_data *data)
+ __u64 valid, int flags,
+ struct mdc_op_data *data, int ea_size)
{
struct mdt_body *b;
ENTRY;
b->fsgid = cfs_curproc_fsgid();
b->capability = cfs_curproc_cap_pack();
b->valid = valid;
+ b->eadatasize = ea_size;
b->flags = flags | MDS_BFLAG_EXT_FLAGS;
b->suppgid = data->suppgids[0];
}
void mdc_getattr_pack(struct ptlrpc_request *req, int offset,
- __u64 valid, int flags, struct mdc_op_data *data)
+ __u64 valid, int flags,
+ struct mdc_op_data *data, int ea_size)
{
if (mdc_req_is_2_0_server(req))
- mdc_getattr_pack_20(req, offset, valid, flags, data);
+ mdc_getattr_pack_20(req, offset, valid, flags, data, ea_size);
else
mdc_getattr_pack_18(req, offset, valid, flags, data);
}
/* pack the intended request */
mdc_getattr_pack(req, DLM_INTENT_REC_OFF, valid, it->it_flags,
- data);
+ data, obddev->u.cli.cl_max_mds_easize);
ptlrpc_req_set_repsize(req, bufcount, repsize);
}
RETURN(req);