return NT_STATUS_OK;
}
- if (!VALID_STAT(smb_fname->st)) {
- return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- }
-
- if (S_ISLNK(smb_fname->st.st_ex_mode)) {
- return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- }
-
status = fsp_new(conn, conn, &fsp);
if (!NT_STATUS_IS_OK(status)) {
return status;
goto fail;
}
- if (!check_same_dev_ino(&smb_fname->st, &fsp->fsp_name->st)) {
- DBG_DEBUG("file [%s] - dev/ino mismatch. "
- "Old (dev=%ju, ino=%ju). "
- "New (dev=%ju, ino=%ju).\n",
- smb_fname_str_dbg(smb_fname),
- (uintmax_t)smb_fname->st.st_ex_dev,
- (uintmax_t)smb_fname->st.st_ex_ino,
- (uintmax_t)fsp->fsp_name->st.st_ex_dev,
- (uintmax_t)fsp->fsp_name->st.st_ex_ino);
- status = NT_STATUS_ACCESS_DENIED;
- goto fail;
- }
-
/*
* fd_openat() has done an FSTAT on the handle
* so update the smb_fname stat info with "truth".