driver: added error mapping for symlink outside filesystem

also fixed print_open_error() to check STATUS_ values, since map_open_errors() is called first

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
Casey Bodley 2010-11-05 14:18:00 -04:00
parent b8f0f5673f
commit f70e454988
2 changed files with 15 additions and 16 deletions

View file

@ -620,38 +620,36 @@ const char *opcode2string(int opcode)
void print_open_error(int on, int status) void print_open_error(int on, int status)
{ {
switch (status) { switch (status) {
case ERROR_ACCESS_DENIED: case STATUS_NETWORK_ACCESS_DENIED:
DbgP("[ERROR] nfs41_Create: STATUS_NETWORK_ACCESS_DENIED\n"); DbgP("[ERROR] nfs41_Create: STATUS_NETWORK_ACCESS_DENIED\n");
break; break;
case ERROR_INVALID_NAME: case STATUS_OBJECT_NAME_INVALID:
DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_NAME_INVALID\n"); DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_NAME_INVALID\n");
break; break;
case ERROR_FILE_EXISTS: case STATUS_OBJECT_NAME_COLLISION:
DbgP("[ERROR] nfs41_Create: ERROR_FILE_EXISTS\n"); DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_NAME_COLLISION\n");
break; break;
case ERROR_FILE_INVALID: case STATUS_FILE_INVALID:
DbgP("[ERROR] nfs41_Create: STATUS_FILE_INVALID\n"); DbgP("[ERROR] nfs41_Create: STATUS_FILE_INVALID\n");
break; break;
case ERROR_FILE_NOT_FOUND: case STATUS_OBJECT_NAME_NOT_FOUND:
DbgP("[ERROR] nfs41_Create: ERROR_FILE_NOT_FOUND\n"); DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_NAME_NOT_FOUND\n");
break; break;
case ERROR_FILENAME_EXCED_RANGE: case STATUS_NAME_TOO_LONG:
DbgP("[ERROR] nfs41_Create: STATUS_NAME_TOO_LONG\n"); DbgP("[ERROR] nfs41_Create: STATUS_NAME_TOO_LONG\n");
break; break;
case ERROR_NETWORK_ACCESS_DENIED: case STATUS_OBJECT_PATH_NOT_FOUND:
DbgP("[ERROR] nfs41_Create: ERROR_NETWORK_ACCESS_DENIED\n");
break;
case ERROR_PATH_NOT_FOUND:
DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_PATH_NOT_FOUND\n"); DbgP("[ERROR] nfs41_Create: STATUS_OBJECT_PATH_NOT_FOUND\n");
break; break;
case ERROR_SHARING_VIOLATION: case STATUS_BAD_NETWORK_PATH:
DbgP("[ERROR] nfs41_Create: STATUS_BAD_NETWORK_PATH\n");
break;
case STATUS_SHARING_VIOLATION:
DbgP("[ERROR] nfs41_Create: STATUS_SHARING_VIOLATION\n"); DbgP("[ERROR] nfs41_Create: STATUS_SHARING_VIOLATION\n");
break; break;
default: default:
DbgP("[ERROR] nfs41_Create: upcall returned %d returning "
"STATUS_INSUFFICIENT_RESOURCES\n", status);
case ERROR_OUTOFMEMORY:
DbgP("[ERROR] nfs41_Create: STATUS_INSUFFICIENT_RESOURCES\n"); DbgP("[ERROR] nfs41_Create: STATUS_INSUFFICIENT_RESOURCES\n");
break;
} }
} }

View file

@ -2529,6 +2529,7 @@ static NTSTATUS map_open_errors(DWORD status, int len)
case ERROR_FILENAME_EXCED_RANGE: return STATUS_NAME_TOO_LONG; case ERROR_FILENAME_EXCED_RANGE: return STATUS_NAME_TOO_LONG;
case ERROR_NETWORK_ACCESS_DENIED: return STATUS_NETWORK_ACCESS_DENIED; case ERROR_NETWORK_ACCESS_DENIED: return STATUS_NETWORK_ACCESS_DENIED;
case ERROR_PATH_NOT_FOUND: return STATUS_OBJECT_PATH_NOT_FOUND; case ERROR_PATH_NOT_FOUND: return STATUS_OBJECT_PATH_NOT_FOUND;
case ERROR_BAD_NETPATH: return STATUS_BAD_NETWORK_PATH;
case ERROR_SHARING_VIOLATION: return STATUS_SHARING_VIOLATION; case ERROR_SHARING_VIOLATION: return STATUS_SHARING_VIOLATION;
case ERROR_REPARSE: return STATUS_REPARSE; case ERROR_REPARSE: return STATUS_REPARSE;
case ERROR_TOO_MANY_LINKS: return STATUS_TOO_MANY_LINKS; case ERROR_TOO_MANY_LINKS: return STATUS_TOO_MANY_LINKS;