From: hno <> Date: Fri, 15 Nov 2002 20:16:31 +0000 (+0000) Subject: Bugfix: The aufs corruption patch triggered another bug in accounting X-Git-Tag: SQUID_3_0_PRE1~525 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe2a4568d40bd7538a466d28a455f725ee4358ea;p=thirdparty%2Fsquid.git Bugfix: The aufs corruption patch triggered another bug in accounting of opening filedescriptors. --- diff --git a/src/fs/aufs/async_io.cc b/src/fs/aufs/async_io.cc index bd725b90b0..fe8d3854b8 100644 --- a/src/fs/aufs/async_io.cc +++ b/src/fs/aufs/async_io.cc @@ -1,6 +1,6 @@ /* - * $Id: async_io.cc,v 1.18 2002/11/10 03:40:34 hno Exp $ + * $Id: async_io.cc,v 1.19 2002/11/15 13:16:31 hno Exp $ * * DEBUG: section 32 Asynchronous Disk I/O * AUTHOR: Pete Bentley @@ -171,7 +171,7 @@ aioCancel(int fd) AIOCB *callback = ctrlp->done_handler; void *cbdata; ctrlp->done_handler = NULL; - debug(32, 2) ("this be aioCancel\n"); + debug(32, 1) ("this be aioCancel. Danger ahead!\n"); if (cbdataReferenceValidDone(ctrlp->done_handler_data, &cbdata)) callback(fd, cbdata, NULL, -2, -2); /* free data if requested to aioWrite() */ diff --git a/src/fs/aufs/store_io_aufs.cc b/src/fs/aufs/store_io_aufs.cc index 8a7beb66bb..7ceebdebd1 100644 --- a/src/fs/aufs/store_io_aufs.cc +++ b/src/fs/aufs/store_io_aufs.cc @@ -414,6 +414,8 @@ storeAufsIOCallback(storeIOState * sio, int errflag) debug(79, 9) ("%s:%d\n", __FILE__, __LINE__); aiostate->fd = -1; cbdataFree(sio); + if (aiostate->flags.opening) + Opening_FD--; if (fd < 0) return; debug(79, 9) ("%s:%d\n", __FILE__, __LINE__); @@ -433,10 +435,11 @@ storeAufsNeedCompletetion(storeIOState * sio) return 1; if (aiostate->flags.opening && FILE_MODE(sio->mode) == O_WRONLY) return 1; + if (aiostate->flags.reading) + return 1; if (aiostate->flags.inreaddone) return 1; - /* Note: Pending read operations are silently cancelled on close */ return 0; }