Windows: cm_MapRPCErrorRmdir EEXIST == ENOTEMPTY

If the file server is asked to remove a directory that is not empty
one might expect it to return UAENOTEMPTY but instead it returns UAEEXIST.

The error translation function cm_MapRPCErrorRmdir did not include
EEXIST in the list of errors that convert to CM_ERROR_NOTEMPTY.

Prior to IBM AFS 3.5 the file server did return ENOTEMPTY and if a
particular platform did not define ENOTEMPTY, ENOTEMPTY was defined to
be EEXIST.  To late to change things back now.

Change-Id: I737ff468575a088e9299a5134b31142dd0ba555e
Reviewed-on: http://gerrit.openafs.org/9778
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
This commit is contained in:
Jeffrey Altman 2013-04-12 01:11:22 -04:00
parent 5e8bfcb42c
commit 6c73b8350a

View File

@ -309,6 +309,7 @@ long cm_MapRPCErrorRmdir(long error, cm_req_t *reqp)
else if (error == EINVAL)
error = CM_ERROR_INVAL;
else if (error == ENOTEMPTY
|| error == EEXIST
|| error == 17 /* AIX */
|| error == 66 /* SunOS 4, Digital UNIX */
|| error == 93 /* Solaris 2, IRIX */