diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-08-23 23:21:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-08-23 23:21:53 +0000 |
commit | 2c210d1eb88d4ab44bfce576b8fbac8e89a946f4 (patch) | |
tree | ba61cc9d2f2ee26f7edc7d92549499175274a374 /nscd/nscd.h | |
parent | fd4af66481e49b3dca42ecb0eadf75dbeea09bfc (diff) | |
download | glibc-2c210d1eb88d4ab44bfce576b8fbac8e89a946f4.tar.gz |
* nscd/connection.c (DEFAULT_DATASIZE_PER_BUCKET): Move to nscd.h.
(dbs): Initialize max_db_size fields.
(nscd_init): When mapping the database, use max_db_size as the
mapping size even if it is bigger than the file size.
* nscd/mem.c (mempool_alloc): When resizing the file make sure the
limit in max_db_size is not exceeded. Don't use mremap, just
posix_fallocate is enough (according to Linus). Use posix_fallocate
correctly.
* nscd/nscd.conf: Add max-db-size parameters.
* nscd/nscd.h (struct database_dyn): Add max_db_size field.
Define DEFAULT_MAX_DB_SIZE and DEFAULT_DATASIZE_PER_BUCKET.
Temporarily define TEMP_FAILURE_RETRY_VAL here.
* nscd/nscd_conf.c (nscd_parse_file): Parse max-db-size parameter
and add sanity checks for it.
* nscd/aicache.c (addhstaiX): Use send with MSG_NOSIGNAL not write to
send reply.
* nscd/connection.c (writeall): Likewise.
(handle_request): Likewise.
* nscd/grpcache.c (cache_addgr): Likewise.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nscd/nscd.c (parse_opt): Likewise.
* nscd/nscd_stat.c (send_stats): Likewise.
(receive_print_stats): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
Diffstat (limited to 'nscd/nscd.h')
-rw-r--r-- | nscd/nscd.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/nscd/nscd.h b/nscd/nscd.h index 25a4b38eb4..3859d95d01 100644 --- a/nscd/nscd.h +++ b/nscd/nscd.h @@ -63,6 +63,7 @@ struct database_dyn int check_file; int persistent; int shared; + size_t max_db_size; const char *filename; const char *db_filename; time_t file_mtime; @@ -99,6 +100,12 @@ struct database_dyn #define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG) #define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1) +/* Default value for the maximum size of the database files. */ +#define DEFAULT_MAX_DB_SIZE (32 * 1024 * 1024) + +/* Number of bytes of data we initially reserve for each hash table bucket. */ +#define DEFAULT_DATASIZE_PER_BUCKET 1024 + /* Global variables. */ extern struct database_dyn dbs[lastdb]; @@ -241,4 +248,14 @@ extern void gc (struct database_dyn *db); /* nscd_setup_thread.c */ extern void setup_thread (struct database_dyn *db); + +/* Special version of TEMP_FAILURE_RETRY for functions returning error + values. */ +#define TEMP_FAILURE_RETRY_VAL(expression) \ + (__extension__ \ + ({ long int __result; \ + do __result = (long int) (expression); \ + while (__result == EINTR); \ + __result; })) + #endif /* nscd.h */ |