-
- if (!vfs_object_exist(conn, directory, &sbuf1)) {
- DEBUG(3, ("rename_internals: source doesn't exist "
- "doing rename %s -> %s\n",
- directory,newname));
-
- if (errno == ENOTDIR || errno == EISDIR
- || errno == ENOENT) {
- /*
- * Must return different errors depending on
- * whether the parent directory existed or
- * not.
- */
-
- p = strrchr_m(directory, '/');
- if (!p)
- return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- *p = '\0';
- if (vfs_object_exist(conn, directory, NULL))
- return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- return NT_STATUS_OBJECT_PATH_NOT_FOUND;
- }
- status = map_nt_error_from_unix(errno);
- DEBUG(3, ("rename_internals: Error %s rename %s -> "
- "%s\n", nt_errstr(status), directory,
- newname));
-
- return status;
- }
-