#include <linux/lustre_net.h>
#include <linux/lustre_mds.h>
#include <linux/lustre_lite.h>
+#include "mdc_internal.h"
void mdc_readdir_pack(struct ptlrpc_request *req, __u64 offset, __u32 size,
- obd_id ino, int type, __u64 xid)
+ obd_id ino, int type)
{
struct mds_body *b;
b->fid1.f_type = type;
b->size = offset; /* !! */
b->suppgid = -1;
- b->blocks = xid; /* !! */
b->nlink = size; /* !! */
}
/* packing of MDS records */
void mdc_create_pack(struct ptlrpc_request *req, int offset,
struct mdc_op_data *op_data,
- __u32 mode, __u64 rdev, __u32 uid, __u32 gid, __u64 time,
+ __u32 mode, __u64 rdev, __u64 time,
const void *data, int datalen)
{
struct mds_rec_create *rec;
rec->cr_fsuid = current->fsuid;
rec->cr_fsgid = current->fsgid;
rec->cr_cap = current->cap_effective;
- ll_ino2fid(&rec->cr_fid, op_data->ino1, op_data->gen1, op_data->typ1);
+ rec->cr_fid = op_data->fid1;
memset(&rec->cr_replayfid, 0, sizeof(rec->cr_replayfid));
rec->cr_mode = mode;
rec->cr_rdev = rdev;
- rec->cr_uid = uid;
- rec->cr_gid = gid;
rec->cr_time = time;
- if (in_group_p(op_data->gid1))
- rec->cr_suppgid = op_data->gid1;
- else
- rec->cr_suppgid = -1;
+ rec->cr_suppgid = op_data->ctxt.gid1;
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, op_data->namelen + 1);
LOGL0(op_data->name, op_data->namelen, tmp);
/* packing of MDS records */
void mdc_open_pack(struct ptlrpc_request *req, int offset,
struct mdc_op_data *op_data,
- __u32 mode, __u64 rdev, __u32 uid, __u32 gid, __u64 time,
+ __u32 mode, __u64 rdev, __u64 time,
__u32 flags, const void *data, int datalen)
{
struct mds_rec_create *rec;
rec->cr_fsgid = current->fsgid;
rec->cr_cap = current->cap_effective;
if (op_data != NULL)
- ll_ino2fid(&rec->cr_fid, op_data->ino1,
- op_data->gen1, op_data->typ1);
+ rec->cr_fid = op_data->fid1;
memset(&rec->cr_replayfid, 0, sizeof(rec->cr_replayfid));
rec->cr_mode = mode;
rec->cr_flags = flags;
rec->cr_rdev = rdev;
- rec->cr_uid = uid;
- rec->cr_gid = gid;
rec->cr_time = time;
- if (in_group_p(op_data->gid1))
- rec->cr_suppgid = op_data->gid1;
- else
- rec->cr_suppgid = -1;
+ rec->cr_suppgid = op_data->ctxt.gid1;
if (op_data->name) {
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1,
rec->sa_fsuid = current->fsuid;
rec->sa_fsgid = current->fsgid;
rec->sa_cap = current->cap_effective;
- ll_ino2fid(&rec->sa_fid, data->ino1, data->gen1, data->typ1);
+ rec->sa_fid = data->fid1;
if (iattr) {
rec->sa_valid = iattr->ia_valid;
rec->sa_mtime = LTIME_S(iattr->ia_mtime);
rec->sa_ctime = LTIME_S(iattr->ia_ctime);
rec->sa_attr_flags = iattr->ia_attr_flags;
-
if ((iattr->ia_valid & ATTR_GID) && in_group_p(iattr->ia_gid))
rec->sa_suppgid = iattr->ia_gid;
else if ((iattr->ia_valid & ATTR_MODE) &&
- in_group_p(data->gid1))
- rec->sa_suppgid = data->gid1;
- else
- rec->sa_suppgid = -1;
+ in_group_p(iattr->ia_gid))
+ rec->sa_suppgid = data->ctxt.gid1;
}
if (ealen == 0)
rec->ul_fsuid = current->fsuid;
rec->ul_fsgid = current->fsgid;
rec->ul_cap = current->cap_effective;
- rec->ul_mode = data->mode;
- if (in_group_p(data->gid1))
- rec->ul_suppgid = data->gid1;
- else
- rec->ul_suppgid = -1;
- ll_ino2fid(&rec->ul_fid1, data->ino1, data->gen1, data->typ1);
- if (data->ino2)
- ll_ino2fid(&rec->ul_fid2, data->ino2, data->gen2, data->typ2);
+ rec->ul_mode = data->create_mode;
+ rec->ul_suppgid = data->ctxt.gid1;
+ rec->ul_fid1 = data->fid1;
+ rec->ul_fid2 = data->fid2;
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, data->namelen + 1);
LASSERT (tmp != NULL);
rec->lk_fsuid = current->fsuid;
rec->lk_fsgid = current->fsgid;
rec->lk_cap = current->cap_effective;
- if (in_group_p(data->gid1))
- rec->lk_suppgid1 = data->gid1;
- else
- rec->lk_suppgid1 = -1;
- if (in_group_p(data->gid2))
- rec->lk_suppgid2 = data->gid2;
- else
- rec->lk_suppgid2 = -1;
- ll_ino2fid(&rec->lk_fid1, data->ino1, data->gen1, data->typ1);
- ll_ino2fid(&rec->lk_fid2, data->ino2, data->gen2, data->typ2);
+ rec->lk_suppgid1 = data->ctxt.gid1;
+ rec->lk_suppgid2 = data->ctxt.gid2;
+ rec->lk_fid1 = data->fid1;
+ rec->lk_fid2 = data->fid2;
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, data->namelen + 1);
LOGL0(data->name, data->namelen, tmp);
rec->rn_fsuid = current->fsuid;
rec->rn_fsgid = current->fsgid;
rec->rn_cap = current->cap_effective;
- if (in_group_p(data->gid1))
- rec->rn_suppgid1 = data->gid1;
+ if (in_group_p(data->ctxt.gid1))
+ rec->rn_suppgid1 = data->ctxt.gid1;
else
rec->rn_suppgid1 = -1;
- if (in_group_p(data->gid2))
- rec->rn_suppgid2 = data->gid2;
+ if (in_group_p(data->ctxt.gid2))
+ rec->rn_suppgid2 = data->ctxt.gid2;
else
rec->rn_suppgid2 = -1;
- ll_ino2fid(&rec->rn_fid1, data->ino1, data->gen1, data->typ1);
- ll_ino2fid(&rec->rn_fid2, data->ino2, data->gen2, data->typ2);
+ rec->rn_fid1 = data->fid1;
+ rec->rn_fid2 = data->fid2;
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, oldlen + 1);
LOGL0(old, oldlen, tmp);
b->capability = current->cap_effective;
b->valid = valid;
b->flags = flags;
- if (in_group_p(data->gid1))
- b->suppgid = data->gid1;
- else
- b->suppgid = -1;
+ b->suppgid = data->ctxt.gid1;
- ll_ino2fid(&b->fid1, data->ino1, data->gen1, data->typ1);
+ b->fid1 = data->fid1;
if (data->name) {
char *tmp;
tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1,