summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2009-12-17 18:31:44 -0800
committerJeremy Allison <jra@samba.org>2009-12-17 18:31:44 -0800
commit0c1ff3bb09e3fec82c11fc182d6a5a12494caea8 (patch)
tree18bd7a1dce02d887642ce3874a24bfc45e7e6335
parentf8ab38a8f211a11c7b006ea7cfb19aee526e12a4 (diff)
downloadsamba-0c1ff3bb09e3fec82c11fc182d6a5a12494caea8.tar.gz
samba-0c1ff3bb09e3fec82c11fc182d6a5a12494caea8.tar.bz2
samba-0c1ff3bb09e3fec82c11fc182d6a5a12494caea8.zip
Always map EMFILE to ERRDOS, ERRnofids, *NOT* NT_STATUS_TOO_MANY_OPENED_FILES.
This is what W2KR3 does for NTCreateX and openX calls. May be the correct fix for bug 6837 - "Too many open files" when trying to access large number of files. Jeremy.
-rw-r--r--source3/smbd/error.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/smbd/error.c b/source3/smbd/error.c
index 874efa2a0b..279b7baff0 100644
--- a/source3/smbd/error.c
+++ b/source3/smbd/error.c
@@ -132,6 +132,10 @@ void reply_openerror(struct smb_request *req, NTSTATUS status)
*/
reply_botherror(req, NT_STATUS_OBJECT_NAME_COLLISION,
ERRDOS, ERRfilexists);
+ } else if (NT_STATUS_EQUAL(status, NT_STATUS_TOO_MANY_OPENED_FILES)) {
+ /* EMFILE always seems to be returned as a DOS error.
+ * See bug 6837. */
+ reply_doserror(req, ERRDOS, ERRnofids);
} else {
reply_nterror(req, status);
}