summaryrefslogtreecommitdiffstats
path: root/source/include
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1999-01-06 02:18:57 +0000
committerJeremy Allison <jra@samba.org>1999-01-06 02:18:57 +0000
commite8344156bb9d161235d40755635f5bbdd3916ef1 (patch)
tree89578403f90f20004ba183dd2d59241ab6560ff2 /source/include
parent5a71a6c96f1b2208a302b974f8274fae1e98b546 (diff)
downloadsamba-e8344156bb9d161235d40755635f5bbdd3916ef1.tar.gz
samba-e8344156bb9d161235d40755635f5bbdd3916ef1.tar.xz
samba-e8344156bb9d161235d40755635f5bbdd3916ef1.zip
Converted the code in smbd/dir.c to use bitmaps instead of a static
array for directory handles. This tidied up the code a *lot*. Plus it means I've fixed the bug in PR#10058, which was due to an NT app that wanted to simultaneously open >256 directory handles. Jeremy.
Diffstat (limited to 'source/include')
-rw-r--r--source/include/local.h5
-rw-r--r--source/include/proto.h13
2 files changed, 14 insertions, 4 deletions
diff --git a/source/include/local.h b/source/include/local.h
index 3261da1cdc3..6aef7f0b8dd 100644
--- a/source/include/local.h
+++ b/source/include/local.h
@@ -34,6 +34,11 @@
file handle per directory, but large numbers do use more memory */
#define MAX_OPEN_DIRECTORIES 64
+/* max number of directory handles */
+/* As this now uses the bitmap code this can be
+ quite large. */
+#define MAX_DIRECTORY_HANDLES 2048
+
/* define what facility to use for syslog */
#ifndef SYSLOG_FACILITY
#define SYSLOG_FACILITY LOG_DAEMON
diff --git a/source/include/proto.h b/source/include/proto.h
index 1f4f522ac77..72baf1c77ec 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -2412,10 +2412,6 @@ int reply_negprot(connection_struct *conn,
char *inbuf,char *outbuf, int dum_size,
int dum_buffsize);
-/*The following definitions come from smbd/noquotas.c */
-
-BOOL disk_quotas(char *path,SMB_BIG_UINT *bsize,SMB_BIG_UINT *dfree,SMB_BIG_UINT *dsize);
-
/*The following definitions come from smbd/nttrans.c */
void fail_next_srvsvc_open(void);
@@ -2510,6 +2506,15 @@ void construct_reply_common(char *inbuf,char *outbuf);
int chain_reply(char *inbuf,char *outbuf,int size,int bufsize);
void smbd_process(void);
+/*The following definitions come from smbd/quotas.c */
+
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_UINT *dsize);
+
/*The following definitions come from smbd/reply.c */
int reply_special(char *inbuf,char *outbuf);