cm_FreeSpace(spacep);
}
+ /* open the file itself */
+ fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
+ osi_assertx(fidp, "null smb_fid_t");
+
+ /* save a reference to the user */
+ cm_HoldUser(userp);
+ fidp->userp = userp;
+
/* if we get here, if code is 0, the file exists and is represented by
* scp. Otherwise, we have to create it. The dir may be represented
* by dscp, or we may have found the file directly. If code is non-zero,
cm_ReleaseSCache(dscp);
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return code;
}
cm_ReleaseSCache(dscp);
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return CM_ERROR_EXISTS;
}
if (scp)
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return code;
}
/* don't create if not found */
cm_ReleaseSCache(dscp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return CM_ERROR_NOSUCHFILE;
}
if (scp)
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return code;
}
cm_CheckNTOpenDone(scp, userp, &req, &ldp);
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return CM_ERROR_ISDIR;
}
cm_CheckNTOpenDone(scp, userp, &req, &ldp);
cm_ReleaseSCache(scp);
cm_ReleaseUser(userp);
+ smb_CloseFID(vcp, fidp, NULL, 0);
+ smb_ReleaseFID(fidp);
free(realPathp);
return CM_ERROR_NOTDIR;
}
- /* open the file itself */
- fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
- osi_assertx(fidp, "null smb_fid_t");
-
- /* save a reference to the user */
- cm_HoldUser(userp);
- fidp->userp = userp;
-
/* If we are restricting sharing, we should do so with a suitable
share lock. */
if (scp->fileType == CM_SCACHETYPE_FILE &&