/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
}
void
-DiskdFile::open(int flags, mode_t aMode, RefCount< IORequestor > callback)
+DiskdFile::open(int flags, mode_t, RefCount<IORequestor> callback)
{
debugs(79, 3, "DiskdFile::open: " << this << " opening for " << callback.getRaw());
assert(ioRequestor.getRaw() == NULL);
}
void
-DiskdFile::create(int flags, mode_t aMode, RefCount< IORequestor > callback)
+DiskdFile::create(int flags, mode_t, RefCount<IORequestor> callback)
{
debugs(79, 3, "DiskdFile::create: " << this << " creating for " << callback.getRaw());
assert (ioRequestor.getRaw() == NULL);
NULL);
if (x < 0) {
+ int xerrno = errno;
ioCompleted();
errorOccured = true;
// IO->shm.put (shm_offset);
- debugs(79, DBG_IMPORTANT, "storeDiskdSend CREATE: " << xstrerror());
+ debugs(79, DBG_IMPORTANT, "storeDiskdSend CREATE: " << xstrerr(xerrno));
notifyClient();
ioRequestor = NULL;
return;
aRead);
if (x < 0) {
+ int xerrno = errno;
ioCompleted();
errorOccured = true;
// IO->shm.put (shm_offset);
- debugs(79, DBG_IMPORTANT, "storeDiskdSend READ: " << xstrerror());
+ debugs(79, DBG_IMPORTANT, "storeDiskdSend READ: " << xstrerr(xerrno));
notifyClient();
ioRequestor = NULL;
return;
NULL);
if (x < 0) {
+ int xerrno = errno;
ioCompleted();
errorOccured = true;
- debugs(79, DBG_IMPORTANT, "storeDiskdSend CLOSE: " << xstrerror());
+ debugs(79, DBG_IMPORTANT, "storeDiskdSend CLOSE: " << xstrerr(xerrno));
notifyClient();
ioRequestor = NULL;
return;
aRequest);
if (x < 0) {
+ int xerrno = errno;
ioCompleted();
errorOccured = true;
- debugs(79, DBG_IMPORTANT, "storeDiskdSend WRITE: " << xstrerror());
+ debugs(79, DBG_IMPORTANT, "storeDiskdSend WRITE: " << xstrerr(xerrno));
// IO->shm.put (shm_offset);
notifyClient();
ioRequestor = NULL;
ReadRequest::Pointer readRequest = dynamic_cast<ReadRequest *>(M->requestor);
/* remove the free protection */
- if (readRequest != NULL)
- readRequest->unlock();
+ if (readRequest != NULL) {
+ const uint32_t lcount = readRequest->unlock();
+ if (lcount == 0)
+ debugs(79, DBG_IMPORTANT, "invariant check failed: readRequest reference count is 0");
+ }
if (M->status < 0) {
++diskd_stats.read.fail;
debugs(79, 3, "storeDiskdWriteDone: status " << M->status);
assert (M->requestor);
WriteRequest::Pointer writeRequest = dynamic_cast<WriteRequest *>(M->requestor);
+
/* remove the free protection */
- if (writeRequest != NULL)
- writeRequest->unlock();
+ if (writeRequest != NULL) {
+ const uint32_t lcount = writeRequest->unlock();
+ if (lcount == 0)
+ debugs(79, DBG_IMPORTANT, "invariant check failed: writeRequest reference count is 0");
+ }
if (M->status < 0) {
errorOccured = true;