From 50f4d6aeed7c119ad1f09087d7d36e13fcecd8d1 Mon Sep 17 00:00:00 2001 From: wessels <> Date: Thu, 20 May 1999 03:57:47 +0000 Subject: [PATCH] Since there is no write callback with new store filesystem interface, we must pass a free function to the low level write routines to free the write buffer after its done --- src/protos.h | 6 +++--- src/store_io.cc | 4 ++-- src/store_swapout.cc | 8 +++----- src/structs.h | 3 +-- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/protos.h b/src/protos.h index c6e9e1512a..e9c8ebed24 100644 --- a/src/protos.h +++ b/src/protos.h @@ -1,6 +1,6 @@ /* - * $Id: protos.h,v 1.328 1999/05/04 21:58:31 wessels Exp $ + * $Id: protos.h,v 1.329 1999/05/19 21:57:49 wessels Exp $ * * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ @@ -852,7 +852,7 @@ extern void storeEntryReset(StoreEntry *); extern storeIOState *storeOpen(sfileno f, mode_t mode, STIOCB * callback, void *callback_data); extern void storeClose(storeIOState * sio); extern void storeRead(storeIOState * sio, char *buf, size_t size, off_t offset, STRCB * callback, void *callback_data); -extern void storeWrite(storeIOState * sio, char *buf, size_t size, off_t offset); +extern void storeWrite(storeIOState * sio, char *buf, size_t size, off_t offset, FREE *); extern void storeUnlink(int fileno); extern off_t storeOffset(storeIOState *); @@ -860,7 +860,7 @@ extern off_t storeOffset(storeIOState *); extern storeIOState *storeUfsOpen(sfileno f, mode_t mode, STIOCB * callback, void *callback_data); extern void storeUfsClose(storeIOState * sio); extern void storeUfsRead(storeIOState * sio, char *buf, size_t size, off_t offset, STRCB * callback, void *callback_data); -extern void storeUfsWrite(storeIOState * sio, char *buf, size_t size, off_t offset); +extern void storeUfsWrite(storeIOState * sio, char *buf, size_t size, off_t offset, FREE *); extern void storeUfsUnlink(int fileno); extern char *storeUfsFullPath(sfileno fn, char *fullpath); /* XXX want this to be static */ diff --git a/src/store_io.cc b/src/store_io.cc index 8887d592f7..f1a3a1dad6 100644 --- a/src/store_io.cc +++ b/src/store_io.cc @@ -24,9 +24,9 @@ storeRead(storeIOState * sio, char *buf, size_t size, off_t offset, STRCB * call } void -storeWrite(storeIOState * sio, char *buf, size_t size, off_t offset) +storeWrite(storeIOState * sio, char *buf, size_t size, off_t offset, FREE * free_func) { - storeUfsWrite(sio, buf, size, offset); + storeUfsWrite(sio, buf, size, offset, free_func); } void diff --git a/src/store_swapout.cc b/src/store_swapout.cc index ba39daf9be..b31c905991 100644 --- a/src/store_swapout.cc +++ b/src/store_swapout.cc @@ -1,6 +1,6 @@ /* - * $Id: store_swapout.cc,v 1.48 1999/05/04 19:22:31 wessels Exp $ + * $Id: store_swapout.cc,v 1.49 1999/05/19 21:57:51 wessels Exp $ * * DEBUG: section 20 Storage Manager Swapout Functions * AUTHOR: Duane Wessels @@ -65,8 +65,7 @@ storeSwapOutStart(StoreEntry * e) buf = storeSwapMetaPack(tlv_list, &swap_hdr_sz); storeSwapTLVFree(tlv_list); mem->swap_hdr_sz = (size_t) swap_hdr_sz; - mem->swapout.free_write_buf = xfree; - storeWrite(mem->swapout.sio, buf, mem->swap_hdr_sz, 0); + storeWrite(mem->swapout.sio, buf, mem->swap_hdr_sz, 0, xfree); } void @@ -195,8 +194,7 @@ storeSwapOut(StoreEntry * e) debug(20, 3) ("storeSwapOut: swapping out %d bytes from %d\n", swap_buf_len, (int) mem->swapout.queue_offset); mem->swapout.queue_offset += swap_buf_len - hdr_len; - mem->swapout.free_write_buf = memFreeDISK; - storeWrite(mem->swapout.sio, swap_buf, swap_buf_len, -1); + storeWrite(mem->swapout.sio, swap_buf, swap_buf_len, -1, memFreeDISK); } void diff --git a/src/structs.h b/src/structs.h index 7e032d9534..1a7f4053ca 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1,6 +1,6 @@ /* - * $Id: structs.h,v 1.289 1999/05/10 19:33:25 wessels Exp $ + * $Id: structs.h,v 1.290 1999/05/19 21:57:52 wessels Exp $ * * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ @@ -1220,7 +1220,6 @@ struct _MemObject { struct { off_t queue_offset; /* relative to in-mem data */ storeIOState *sio; - FREE *free_write_buf; } swapout; HttpReply *reply; request_t *request; -- 2.47.3