for new fid implementation, the fid will be allocated at client,
So only check fid2 is not enough for setting DISP_ENQ_COMPLETE.
/* If we were revalidating a fid/name pair, mark the intent in
* case we fail and get called again from lookup */
- if (fid_is_sane(&op_data->fid2)) {
+ if (fid_is_sane(&op_data->fid2) &&
+ !it_disposition(it, DISP_OPEN_CREATE)) {
it_set_disposition(it, DISP_ENQ_COMPLETE);
/* Also: did we find the same inode? */
if (memcmp(&op_data->fid2, &mdt_body->fid1, sizeof(op_data->fid2)))