Updated Branches: refs/heads/3.0.x 9310f113a -> aded6c18b
Revert "interm". This was a bad push. This reverts commit d91e29cc631e75c71b44e4928afc46985038cc15. Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/aded6c18 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/aded6c18 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/aded6c18 Branch: refs/heads/3.0.x Commit: aded6c18b709b6826c894e6c4e07c52b249e59ad Parents: 5f4bb96 Author: [email protected] <[email protected]> Authored: Mon Mar 19 21:12:05 2012 -0700 Committer: John Plevyak <[email protected]> Committed: Mon Mar 19 21:12:05 2012 -0700 ---------------------------------------------------------------------- iocore/cache/CacheWrite.cc | 94 +++++++++++++++----------------- iocore/net/UnixNetVConnection.cc | 4 +- 2 files changed, 45 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/aded6c18/iocore/cache/CacheWrite.cc ---------------------------------------------------------------------- diff --git a/iocore/cache/CacheWrite.cc b/iocore/cache/CacheWrite.cc index f87dea7..e0d61ec 100644 --- a/iocore/cache/CacheWrite.cc +++ b/iocore/cache/CacheWrite.cc @@ -1487,62 +1487,56 @@ CacheVC::openWriteStartDone(int event, Event *e) return EVENT_CONT; set_io_not_in_progress(); } - { - CACHE_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); - if (!lock) - VC_LOCK_RETRY_EVENT(); - - if (_action.cancelled && (!od || !od->has_multiple_writers())) - goto Lcancel; + if (_action.cancelled && (!od || !od->has_multiple_writers())) + goto Lcancel; - if (event == AIO_EVENT_DONE) { // vector read done - Doc *doc = (Doc *) buf->data(); - if (!io.ok()) { - err = ECACHE_READ_FAIL; - goto Lfailure; - } + if (event == AIO_EVENT_DONE) { // vector read done + Doc *doc = (Doc *) buf->data(); + if (!io.ok()) { + err = ECACHE_READ_FAIL; + goto Lfailure; + } - /* INKqa07123. - A directory entry which is nolonger valid may have been overwritten. - We need to start afresh from the beginning by setting last_collision - to NULL. - */ - if (!dir_valid(vol, &dir)) { - DDebug("cache_write", + /* INKqa07123. + A directory entry which is nolonger valid may have been overwritten. + We need to start afresh from the beginning by setting last_collision + to NULL. + */ + if (!dir_valid(vol, &dir)) { + DDebug("cache_write", "OpenReadStartDone: Dir not valid: Write Head: %d, Dir: %d", offset_to_vol_offset(vol, vol->header->write_pos), dir_offset(&dir)); - last_collision = NULL; - goto Lcollision; - } - if (!(doc->first_key == first_key)) - goto Lcollision; - if (doc->magic != DOC_MAGIC) { - err = ECACHE_BAD_META_DATA; - goto Lfailure; - } - if (!doc->hlen) { - err = ECACHE_BAD_META_DATA; - goto Lfailure; - } - ink_assert((((uintptr_t) &doc->hdr()[0]) & HDR_PTR_ALIGNMENT_MASK) == 0); + last_collision = NULL; + goto Lcollision; + } + if (!(doc->first_key == first_key)) + goto Lcollision; + if (doc->magic != DOC_MAGIC) { + err = ECACHE_BAD_META_DATA; + goto Lfailure; + } + if (!doc->hlen) { + err = ECACHE_BAD_META_DATA; + goto Lfailure; + } + ink_assert((((uintptr_t) &doc->hdr()[0]) & HDR_PTR_ALIGNMENT_MASK) == 0); - if (write_vector->get_handles(doc->hdr(), doc->hlen, buf) != doc->hlen) { - err = ECACHE_BAD_META_DATA; - goto Lfailure; - } - ink_debug_assert(write_vector->count() > 0); - od->first_dir = dir; - first_dir = dir; - if (doc->single_fragment()) { - // fragment is tied to the vector - od->move_resident_alt = 1; - od->single_doc_key = doc->key; - dir_assign(&od->single_doc_dir, &dir); - dir_set_tag(&od->single_doc_dir, od->single_doc_key.word(2)); - } - first_buf = buf; - goto Lsuccess; + if (write_vector->get_handles(doc->hdr(), doc->hlen, buf) != doc->hlen) { + err = ECACHE_BAD_META_DATA; + goto Lfailure; + } + ink_debug_assert(write_vector->count() > 0); + od->first_dir = dir; + first_dir = dir; + if (doc->single_fragment()) { + // fragment is tied to the vector + od->move_resident_alt = 1; + od->single_doc_key = doc->key; + dir_assign(&od->single_doc_dir, &dir); + dir_set_tag(&od->single_doc_dir, od->single_doc_key.word(2)); } + first_buf = buf; + goto Lsuccess; } Lcollision: http://git-wip-us.apache.org/repos/asf/trafficserver/blob/aded6c18/iocore/net/UnixNetVConnection.cc ---------------------------------------------------------------------- diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc index 8b290d0..ac80aca 100644 --- a/iocore/net/UnixNetVConnection.cc +++ b/iocore/net/UnixNetVConnection.cc @@ -966,9 +966,7 @@ UnixNetVConnection::mainEvent(int event, Event *e) MUTEX_TRY_LOCK(rlock, read.vio.mutex ? (ProxyMutex *) read.vio.mutex : (ProxyMutex *) e->ethread->mutex, e->ethread); MUTEX_TRY_LOCK(wlock, write.vio.mutex ? (ProxyMutex *) write.vio.mutex : (ProxyMutex *) e->ethread->mutex, e->ethread); - if (!hlock || !rlock || !wlock || - (read.vio.mutex.m_ptr && rlock.m.m_ptr != read.vio.mutex.m_ptr) || - (write.vio.mutex.m_ptr && wlock.m.m_ptr != write.vio.mutex.m_ptr)) { + if (!hlock || !rlock || !wlock) { #ifndef INACTIVITY_TIMEOUT if (e == active_timeout) #endif
