--------------------- PatchSet 395 Date: 2002/12/15 06:23:17 Author: rbcollins Branch: unify-io Tag: (none) Log: repeat Members: src/fs/coss/store_coss.h:1.3.10.32->1.3.10.33 src/fs/coss/store_dir_coss.cc:1.4.10.39->1.4.10.40 src/fs/coss/store_io_coss.cc:1.3.10.19->1.3.10.20 Index: squid3/src/fs/coss/store_coss.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/coss/store_coss.h,v retrieving revision 1.3.10.32 retrieving revision 1.3.10.33 diff -u -r1.3.10.32 -r1.3.10.33 --- squid3/src/fs/coss/store_coss.h 15 Dec 2002 06:21:20 -0000 1.3.10.32 +++ squid3/src/fs/coss/store_coss.h 15 Dec 2002 06:23:17 -0000 1.3.10.33 @@ -38,8 +38,7 @@ /* Per-storedir info */ struct _cossinfo { - //struct _cossmembuf *current_membuf; - size_t current_offset; /* in Blocks */ + //size_t current_offset; /* in Blocks */ int numcollisions; dlink_list index; async_queue_t aq; @@ -119,6 +118,7 @@ int count; dlink_list membufs; struct _cossmembuf *current_membuf; + size_t current_offset; /* in Blocks */ }; extern off_t storeCossAllocate(CossSwapDir * SD, const StoreEntry * e, int which); Index: squid3/src/fs/coss/store_dir_coss.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/coss/store_dir_coss.cc,v retrieving revision 1.4.10.39 retrieving revision 1.4.10.40 diff -u -r1.4.10.39 -r1.4.10.40 --- squid3/src/fs/coss/store_dir_coss.cc 15 Dec 2002 06:21:20 -0000 1.4.10.39 +++ squid3/src/fs/coss/store_dir_coss.cc 15 Dec 2002 06:23:17 -0000 1.4.10.40 @@ -1,6 +1,6 @@ /* - * $Id: store_dir_coss.cc,v 1.4.10.39 2002/12/15 06:21:20 rbcollins Exp $ + * $Id: store_dir_coss.cc,v 1.4.10.40 2002/12/15 06:23:17 rbcollins Exp $ * * DEBUG: section 47 Store COSS Directory Routines * AUTHOR: Eric Stern @@ -737,7 +737,6 @@ max_size = size; fsdata = cs; - cs->current_offset = 0; cs->numcollisions = 0; cs->index.head = NULL; cs->index.tail = NULL; @@ -838,7 +837,7 @@ return result; } -CossSwapDir::CossSwapDir() : fd (-1), swaplog_fd(-1), count(0), current_membuf (NULL) +CossSwapDir::CossSwapDir() : fd (-1), swaplog_fd(-1), count(0), current_membuf (NULL), current_offset(0) { membufs.head = NULL; membufs.tail = NULL; Index: squid3/src/fs/coss/store_io_coss.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/coss/store_io_coss.cc,v retrieving revision 1.3.10.19 retrieving revision 1.3.10.20 diff -u -r1.3.10.19 -r1.3.10.20 --- squid3/src/fs/coss/store_io_coss.cc 15 Dec 2002 06:21:20 -0000 1.3.10.19 +++ squid3/src/fs/coss/store_io_coss.cc 15 Dec 2002 06:23:17 -0000 1.3.10.20 @@ -1,6 +1,6 @@ /* - * $Id: store_io_coss.cc,v 1.3.10.19 2002/12/15 06:21:20 rbcollins Exp $ + * $Id: store_io_coss.cc,v 1.3.10.20 2002/12/15 06:23:17 rbcollins Exp $ * * DEBUG: section 79 Storage Manager COSS Interface * AUTHOR: Eric Stern @@ -86,7 +86,6 @@ off_t storeCossAllocate(CossSwapDir * SD, const StoreEntry * e, int which) { - CossInfo *cs = (CossInfo *) SD->fsdata; CossMemBuf *newmb; off_t retofs; size_t allocsize; @@ -110,35 +109,35 @@ assert(which != COSS_ALLOC_NOTIFY); /* Check if we have overflowed the disk .. */ - if ((cs->current_offset + allocsize) > (size_t)(SD->max_size << 10)) { + if ((SD->current_offset + allocsize) > (size_t)(SD->max_size << 10)) { /* * tried to allocate past the end of the disk, so wrap * back to the beginning */ SD->current_membuf->flags.full = 1; - SD->current_membuf->diskend = cs->current_offset - 1; - cs->current_offset = 0; /* wrap back to beginning */ + SD->current_membuf->diskend = SD->current_offset - 1; + SD->current_offset = 0; /* wrap back to beginning */ debug(79, 2) ("storeCossAllocate: wrap to 0\n"); newmb = storeCossCreateMemBuf(SD, 0, checkf, &coll); SD->current_membuf = newmb; /* Check if we have overflowed the MemBuf */ - } else if ((cs->current_offset + allocsize) > SD->current_membuf->diskend) { + } else if ((SD->current_offset + allocsize) > SD->current_membuf->diskend) { /* * Skip the blank space at the end of the stripe. start over. */ SD->current_membuf->flags.full = 1; - cs->current_offset = SD->current_membuf->diskend + 1; + SD->current_offset = SD->current_membuf->diskend + 1; debug(79, 2) ("storeCossAllocate: New offset - %ld\n", - (long int) cs->current_offset); - newmb = storeCossCreateMemBuf(SD, cs->current_offset, checkf, &coll); + (long int) SD->current_offset); + newmb = storeCossCreateMemBuf(SD, SD->current_offset, checkf, &coll); SD->current_membuf = newmb; } /* If we didn't get a collision, then update the current offset and return it */ if (coll == 0) { - retofs = cs->current_offset; - cs->current_offset = retofs + allocsize; + retofs = SD->current_offset; + SD->current_offset = retofs + allocsize; return retofs; } else { debug(79, 3) ("storeCossAllocate: Collision\n"); @@ -474,7 +473,7 @@ if (t->flags.writing) sleep(5); /* XXX EEEWWW! */ lseek(fd, t->diskstart, SEEK_SET); - end = (t == current_membuf) ? cs->current_offset : t->diskend; + end = (t == current_membuf) ? current_offset : t->diskend; FD_WRITE_METHOD(fd, t->buffer, end - t->diskstart); } } @@ -560,8 +559,7 @@ void storeCossStartMembuf(CossSwapDir * sd) { - CossInfo *cs = (CossInfo *) sd->fsdata; - CossMemBuf *newmb = storeCossCreateMemBuf(sd, cs->current_offset, -1, NULL); + CossMemBuf *newmb = storeCossCreateMemBuf(sd, sd->current_offset, -1, NULL); assert(!sd->current_membuf); sd->current_membuf = newmb; }