From 1ad22ed7e14d1ed643add0dbf80c82b96ae69fc8 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 20 Jan 2011 02:11:57 -0500 Subject: [PATCH] vol: nt_open should not create missing directories Revert the prior change that added directory creation to nt_open(). nt_open() should fail and the caller should create the directories. Failure to do so results in an incomplete tree which confuses the salvager. Change-Id: Ieb2a05baada2531dad1869e95823fe2006bdc2c6 Reviewed-on: http://gerrit.openafs.org/3709 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/vol/ntops.c | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/src/vol/ntops.c b/src/vol/ntops.c index 651ba29419..589a61da11 100644 --- a/src/vol/ntops.c +++ b/src/vol/ntops.c @@ -120,39 +120,6 @@ nt_open(char *name, int flags, int mode) fh = CreateFile(name, nt_access, nt_share, NULL, nt_create, FandA, NULL); if (fh == INVALID_HANDLE_VALUE) { DWORD gle = GetLastError(); - - if (gle == ERROR_PATH_NOT_FOUND) { - /* - * one or more of the directories in the path - * does not exist. We must create them and - * try again to create the file. - */ - char * p; - - for (p=name; *p && *p != OS_DIRSEPC; p++); - while (*p == OS_DIRSEPC) p++; /* ignore the first dirsep */ - for (; *p; p++) { - if (*p == OS_DIRSEPC) { - *p = '\0'; - if (CreateDirectory(name, NULL)) - gle = 0; - else - gle = GetLastError(); - *p = OS_DIRSEPC; - if (gle != ERROR_SUCCESS && - gle != ERROR_ALREADY_EXISTS) { - /* The directory creation failed. */ - fh = INVALID_FD; - break; - } else { - while (*(p+1) == OS_DIRSEPC) p++; - } - } - } - - if (!*p) /* successful creation of the path */ - goto retry; - } errno = nterr_nt2unix(gle, EBADF); } return fh;