--------------------- PatchSet 263 Date: 2002/12/05 23:27:33 Author: rbcollins Branch: unify-io Tag: (none) Log: starting on aufs open - step 2 Members: src/fs/aufs/store_asyncufs.h:1.2.12.7->1.2.12.8 src/fs/aufs/store_io_aufs.cc:1.3.12.8->1.3.12.9 Index: squid3/src/fs/aufs/store_asyncufs.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_asyncufs.h,v retrieving revision 1.2.12.7 retrieving revision 1.2.12.8 diff -u -r1.2.12.7 -r1.2.12.8 --- squid3/src/fs/aufs/store_asyncufs.h 5 Dec 2002 23:10:50 -0000 1.2.12.7 +++ squid3/src/fs/aufs/store_asyncufs.h 5 Dec 2002 23:27:33 -0000 1.2.12.8 @@ -101,7 +101,7 @@ virtual void deleteSelf() const {delete this;} void * operator new (size_t); void operator delete (void *); - squidaiostate_t(); + squidaiostate_t(SwapDir *, StoreEntry *, STIOCB *, void *); ~squidaiostate_t(); int fd; Index: squid3/src/fs/aufs/store_io_aufs.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_io_aufs.cc,v retrieving revision 1.3.12.8 retrieving revision 1.3.12.9 diff -u -r1.3.12.8 -r1.3.12.9 --- squid3/src/fs/aufs/store_io_aufs.cc 5 Dec 2002 23:10:50 -0000 1.3.12.8 +++ squid3/src/fs/aufs/store_io_aufs.cc 5 Dec 2002 23:27:33 -0000 1.3.12.9 @@ -50,8 +50,14 @@ cbdataReferenceDone (t); } -squidaiostate_t::squidaiostate_t() +squidaiostate_t::squidaiostate_t(SwapDir * SD, StoreEntry * anEntry, STIOCB * callback_, void *callback_data_) { + swap_filen = anEntry->swap_filen; + swap_dirn = SD->index; + mode = O_BINARY; + callback = callback_; + callback_data = cbdataReference(callback_data_); + e = anEntry; fd = -1; flags.opening = 1; } @@ -79,7 +85,7 @@ StoreIOState::Pointer AufsIO::createState(SwapDir *SD, StoreEntry *e, STIOCB * callback, void *callback_data) const { - return new squidaiostate_t; + return new squidaiostate_t (SD, e, callback, callback_data); } DiskFile::Pointer @@ -129,7 +135,9 @@ /* to consider: make createstate a private UFSStrategy call */ StoreIOState::Pointer sio = ((UFSStrategy *)SD->IO)->createState (SD, e, callback, callback_data); + sio->mode |= O_RDONLY; + //squidaiostate_t *aio = dynamic_cast (sio.getRaw()); #if !ASYNC_OPEN int fd = file_open(path, O_RDONLY | O_BINARY); if (fd < 0) { @@ -137,12 +145,6 @@ return NULL; } #endif - sio->swap_filen = e->swap_filen; - sio->swap_dirn = SD->index; - sio->mode = O_RDONLY | O_BINARY; - sio->callback = callback; - sio->callback_data = cbdataReference(callback_data); - sio->e = e; Opening_FD++; #if ASYNC_OPEN aioOpen(path, O_RDONLY | O_BINARY, 0644, storeAufsOpenDone, sio.getRaw()); @@ -184,7 +186,7 @@ return NULL; } #endif - storeIOState *sio = new squidaiostate_t; + storeIOState *sio = new squidaiostate_t (SD, e, callback, callback_data); sio->swap_filen = filn; sio->swap_dirn = dirn; sio->mode = O_WRONLY | O_BINARY;