/*
* We need to return the existing object's fid back, so it is done here,
* after preparing the reply.
/*
* We need to return the existing object's fid back, so it is done here,
* after preparing the reply.
RETURN(0);
}
}
rc = mdt_mfd_open(info, p, o, flags, created);
RETURN(0);
}
}
rc = mdt_mfd_open(info, p, o, flags, created);
rc = mdt_finish_open(info, parent, o, flags, 0, rep);
if (!(flags & MDS_OPEN_LOCK) || rc)
mdt_object_unlock(info, o, lhc, 1);
rc = mdt_finish_open(info, parent, o, flags, 0, rep);
if (!(flags & MDS_OPEN_LOCK) || rc)
mdt_object_unlock(info, o, lhc, 1);
+ if (!rc) {
+ mdt_set_disposition(info, rep, DISP_LOOKUP_POS);
+ if (flags & MDS_OPEN_LOCK)
+ mdt_set_disposition(info, rep, DISP_OPEN_LOCK);
+ }
+
/* openlock was acquired and mdt_finish_open failed -
drop the openlock */
mdt_object_unlock(info, child, lhc, 1);
/* openlock was acquired and mdt_finish_open failed -
drop the openlock */
mdt_object_unlock(info, child, lhc, 1);