int mds_pack_md(struct obd_device *, struct lustre_msg *, int offset,
struct mds_body *, struct inode *, int lock);
void mds_pack_dentry2fid(struct ll_fid *, struct dentry *);
+void mds_pack_dentry2body(struct mds_body *b, struct dentry *dentry);
void mds_pack_inode2fid(struct obd_device *, struct ll_fid *, struct inode *);
void mds_pack_inode2body(struct obd_device *, struct mds_body *, struct inode *);
#endif
#include <linux/lustre_lib.h>
#include <linux/lustre_mds.h>
-void mds_pack_dentry2fid(struct ll_fid *fid,
- struct dentry *dentry)
+void mds_pack_dentry2fid(struct ll_fid *fid, struct dentry *dentry)
{
fid->id = dentry->d_inum;
fid->generation = dentry->d_generation;
fid->mds = dentry->d_mdsnum;
}
+void mds_pack_dentry2body(struct mds_body *b, struct dentry *dentry)
+{
+ b->valid |= OBD_MD_FLID | OBD_MD_FLGENER;
+ b->ino = dentry->d_inum;
+ b->generation = dentry->d_generation;
+ b->mds = dentry->d_mdsnum;
+}
+
void mds_pack_inode2fid(struct obd_device *obd, struct ll_fid *fid,
struct inode *inode)
{
LASSERTF(child->d_inode == NULL, "BUG 3869");
body = lustre_msg_buf(req->rq_repmsg, offset, sizeof (*body));
mds_pack_dentry2fid(&body->fid1, child);
+ mds_pack_dentry2body(body, child);
+ body->valid |= OBD_MD_MDS;
} else if (child->d_inode == NULL) {
DEBUG_REQ(D_ERROR, req, "parent "LPU64"/%u name %s mode %o",
rec->ur_fid1->id, rec->ur_fid1->generation,