From d2563c986dac82f38c0b312a4b2bc19920636eca Mon Sep 17 00:00:00 2001 From: Alja Mrak-Tadel Date: Wed, 30 Mar 2016 14:42:35 -0700 Subject: [PATCH] Use file size in info file. --- src/XrdFileCache/XrdFileCacheFile.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/XrdFileCache/XrdFileCacheFile.cc b/src/XrdFileCache/XrdFileCacheFile.cc index 5bd2704c3aa..4b5a5bd2c92 100644 --- a/src/XrdFileCache/XrdFileCacheFile.cc +++ b/src/XrdFileCache/XrdFileCacheFile.cc @@ -207,9 +207,10 @@ bool File::InitiateClose() m_stateCond.Lock(); m_stopping = true; m_stateCond.UnLock(); - m_prefetchState = kCanceled; - if (m_cfi.IsComplete()) return false; // AMT maybe map size is here more meaningfull, but might hold block state lock - return true; + m_prefetchState = kCanceled; + m_cfi.CheckComplete(); + bool complete = m_cfi.IsComplete(); + return !complete; } //______________________________________________________________________________ @@ -270,8 +271,9 @@ bool File::Open() m_fileSize = m_input->FSize(); int ss = (m_fileSize - 1)/m_cfi.GetBufferSize() + 1; clLog()->Info(XrdCl::AppMsg, "Creating new file info with size %lld. Reserve space for %d blocks %s", m_fileSize, ss, m_input->Path()); - m_cfi.ResizeBits(ss, Cache::GetInstance().RefConfiguration().m_prefetch); + m_cfi.SetFileSize(m_fileSize); m_cfi.WriteHeader(m_infoFile); + m_infoFile->Fsync(); } else {