From: serassio <> Date: Sun, 10 Jul 2005 21:43:30 +0000 (+0000) Subject: truncate() is not available on some platforms, so we must don't build any X-Git-Tag: SQUID_3_0_PRE4~704 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efa3acd11837173ac62e2413527423f819c958bc;p=thirdparty%2Fsquid.git truncate() is not available on some platforms, so we must don't build any code section containing truncate() when USE_TRUNCATE is not defined --- diff --git a/src/DiskIO/DiskThreads/aiops.cc b/src/DiskIO/DiskThreads/aiops.cc index 946dddc62f..744461382c 100644 --- a/src/DiskIO/DiskThreads/aiops.cc +++ b/src/DiskIO/DiskThreads/aiops.cc @@ -1,5 +1,5 @@ /* - * $Id: aiops.cc,v 1.5 2005/04/23 16:53:18 serassio Exp $ + * $Id: aiops.cc,v 1.6 2005/07/10 15:43:30 serassio Exp $ * * DEBUG: section 43 AIOPS * AUTHOR: Stewart Forster @@ -120,8 +120,11 @@ static void squidaio_do_read(squidaio_request_t *); static void squidaio_do_write(squidaio_request_t *); static void squidaio_do_close(squidaio_request_t *); static void squidaio_do_stat(squidaio_request_t *); -static void squidaio_do_unlink(squidaio_request_t *); +#if USE_TRUNCATE static void squidaio_do_truncate(squidaio_request_t *); +#else +static void squidaio_do_unlink(squidaio_request_t *); +#endif #if AIO_OPENDIR static void *squidaio_do_opendir(squidaio_request_t *); #endif @@ -450,13 +453,18 @@ squidaio_thread_loop(void *ptr) squidaio_do_close(request); break; - case _AIO_OP_UNLINK: - squidaio_do_unlink(request); - break; +#if USE_TRUNCATE case _AIO_OP_TRUNCATE: squidaio_do_truncate(request); break; +#else + + case _AIO_OP_UNLINK: + squidaio_do_unlink(request); + break; + +#endif #if AIO_OPENDIR /* Opendir not implemented yet */ case _AIO_OP_OPENDIR: @@ -851,22 +859,25 @@ squidaio_do_stat(squidaio_request_t * requestp) } +#if USE_TRUNCATE int -squidaio_unlink(const char *path, squidaio_result_t * resultp) +squidaio_truncate(const char *path, off_t length, squidaio_result_t * resultp) { squidaio_request_t *requestp; requestp = (squidaio_request_t *)squidaio_request_pool->alloc(); - requestp->path = squidaio_xstrdup(path); + requestp->path = (char *) squidaio_xstrdup(path); + + requestp->offset = length; requestp->resultp = resultp; - requestp->request_type = _AIO_OP_UNLINK; + requestp->request_type = _AIO_OP_TRUNCATE; requestp->cancelled = 0; - resultp->result_type = _AIO_OP_UNLINK; + resultp->result_type = _AIO_OP_TRUNCATE; squidaio_queue_request(requestp); @@ -875,30 +886,30 @@ squidaio_unlink(const char *path, squidaio_result_t * resultp) static void -squidaio_do_unlink(squidaio_request_t * requestp) +squidaio_do_truncate(squidaio_request_t * requestp) { - requestp->ret = unlink(requestp->path); + requestp->ret = truncate(requestp->path, requestp->offset); requestp->err = errno; } + +#else int -squidaio_truncate(const char *path, off_t length, squidaio_result_t * resultp) +squidaio_unlink(const char *path, squidaio_result_t * resultp) { squidaio_request_t *requestp; requestp = (squidaio_request_t *)squidaio_request_pool->alloc(); - requestp->path = (char *) squidaio_xstrdup(path); - - requestp->offset = length; + requestp->path = squidaio_xstrdup(path); requestp->resultp = resultp; - requestp->request_type = _AIO_OP_TRUNCATE; + requestp->request_type = _AIO_OP_UNLINK; requestp->cancelled = 0; - resultp->result_type = _AIO_OP_TRUNCATE; + resultp->result_type = _AIO_OP_UNLINK; squidaio_queue_request(requestp); @@ -907,12 +918,13 @@ squidaio_truncate(const char *path, off_t length, squidaio_result_t * resultp) static void -squidaio_do_truncate(squidaio_request_t * requestp) +squidaio_do_unlink(squidaio_request_t * requestp) { - requestp->ret = truncate(requestp->path, requestp->offset); + requestp->ret = unlink(requestp->path); requestp->err = errno; } +#endif #if AIO_OPENDIR /* XXX squidaio_opendir NOT implemented yet.. */ diff --git a/src/DiskIO/DiskThreads/async_io.cc b/src/DiskIO/DiskThreads/async_io.cc index da40760ef3..b4b7532e58 100644 --- a/src/DiskIO/DiskThreads/async_io.cc +++ b/src/DiskIO/DiskThreads/async_io.cc @@ -1,6 +1,6 @@ /* - * $Id: async_io.cc,v 1.1 2004/12/20 16:30:38 robertc Exp $ + * $Id: async_io.cc,v 1.2 2005/07/10 15:43:30 serassio Exp $ * * DEBUG: section 32 Asynchronous Disk I/O * AUTHOR: Pete Bentley @@ -210,8 +210,9 @@ aioStat(char *path, struct stat *sb, AIOCB * callback, void *callback_data) return; } /* aioStat */ +#if USE_TRUNCATE void -aioUnlink(const char *path, AIOCB * callback, void *callback_data) +aioTruncate(const char *path, off_t length, AIOCB * callback, void *callback_data) { squidaio_ctrl_t *ctrlp; assert(DiskThreadsIOStrategy::Instance.initialised); @@ -220,14 +221,15 @@ aioUnlink(const char *path, AIOCB * callback, void *callback_data) ctrlp->fd = -2; ctrlp->done_handler = callback; ctrlp->done_handler_data = cbdataReference(callback_data); - ctrlp->operation = _AIO_UNLINK; + ctrlp->operation = _AIO_TRUNCATE; ctrlp->result.data = ctrlp; - squidaio_unlink(path, &ctrlp->result); + squidaio_truncate(path, length, &ctrlp->result); dlinkAdd(ctrlp, &ctrlp->node, &used_list); -} /* aioUnlink */ +} /* aioTruncate */ +#else void -aioTruncate(const char *path, off_t length, AIOCB * callback, void *callback_data) +aioUnlink(const char *path, AIOCB * callback, void *callback_data) { squidaio_ctrl_t *ctrlp; assert(DiskThreadsIOStrategy::Instance.initialised); @@ -236,11 +238,13 @@ aioTruncate(const char *path, off_t length, AIOCB * callback, void *callback_dat ctrlp->fd = -2; ctrlp->done_handler = callback; ctrlp->done_handler_data = cbdataReference(callback_data); - ctrlp->operation = _AIO_TRUNCATE; + ctrlp->operation = _AIO_UNLINK; ctrlp->result.data = ctrlp; - squidaio_truncate(path, length, &ctrlp->result); + squidaio_unlink(path, &ctrlp->result); dlinkAdd(ctrlp, &ctrlp->node, &used_list); -} /* aioTruncate */ +} /* aioUnlink */ + +#endif int aioQueueSize(void)