]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
truncate() is not available on some platforms, so we must don't build any
authorserassio <>
Sun, 10 Jul 2005 21:43:30 +0000 (21:43 +0000)
committerserassio <>
Sun, 10 Jul 2005 21:43:30 +0000 (21:43 +0000)
code section containing truncate() when USE_TRUNCATE is not defined

src/DiskIO/DiskThreads/aiops.cc
src/DiskIO/DiskThreads/async_io.cc

index 946dddc62f459fc7beeeedd85ba6c6a006746937..744461382c65c13e732fe3e81566b2999cf22dba 100644 (file)
@@ -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 <slf@connect.com.au>
@@ -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.. */
index da40760ef31a67d3ecf2641b0efc241c87c701a1..b4b7532e5811bba5a92aa5f0a29be2e1357901e3 100644 (file)
@@ -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 <pete@demon.net>
@@ -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)