struct dentry *dchild = NULL;
struct mds_obd *mds = mds_req2mds(req);
struct obd_device *obd = req->rq_export->exp_obd;
+ struct mds_body *body;
char *name;
struct inode *dir, *inode;
struct lustre_handle lockh, child_lockh;
GOTO(out_unlink_dchild, rc = -ENOENT);
}
+ if (offset) {
+ body = lustre_msg_buf(req->rq_repmsg, offset);
+ mds_pack_inode2fid(&body->fid1, inode);
+ mds_pack_inode2body(body, inode);
+ }
+
OBD_FAIL_WRITE(OBD_FAIL_MDS_REINT_UNLINK_WRITE, dir->i_sb->s_dev);
switch (rec->ur_mode /* & S_IFMT ? */) {
case S_IFREG:
/* get OBD EA data first so client can also destroy object */
if ((inode->i_mode & S_IFMT) == S_IFREG && offset) {
- struct mds_body *body;
struct lov_mds_md *lmm;
- body = lustre_msg_buf(req->rq_repmsg, 1);
- mds_pack_inode2fid(&body->fid1, inode);
- mds_pack_inode2body(body, inode);
-
- lmm = lustre_msg_buf(req->rq_repmsg, 2);
+ lmm = lustre_msg_buf(req->rq_repmsg, offset + 1);
lmm->lmm_easize = mds->mds_max_mdsize;
if ((rc = mds_fs_get_md(mds, inode, lmm)) < 0) {
CDEBUG(D_INFO, "No md for ino %ld: rc = %d\n",