Пример #1
0
 protected internal void UpdateFileRecord(FileRecord fileRecord, uint?transactionID)
 {
     lock (m_mftLock)
     {
         bool allocateTransactionID = !transactionID.HasValue;
         if (allocateTransactionID)
         {
             transactionID = m_logClient.AllocateTransactionID();
         }
         m_mft.UpdateFileRecord(fileRecord, transactionID.Value);
         if (allocateTransactionID)
         {
             m_logClient.WriteForgetTransactionRecord(transactionID.Value);
             if (m_logClient.TransactionCount == 0)
             {
                 m_logClient.WriteRestartRecord(true);
             }
         }
     }
 }
Пример #2
0
        protected internal virtual void UpdateFileRecord(FileRecord fileRecord, uint?transactionID)
        {
            m_mftLock.AcquireWriterLock(Timeout.Infinite);
            bool allocateTransactionID = !transactionID.HasValue;

            if (allocateTransactionID)
            {
                transactionID = m_logClient.AllocateTransactionID();
            }
            m_mft.UpdateFileRecord(fileRecord, transactionID.Value);
            if (allocateTransactionID)
            {
                m_logClient.WriteForgetTransactionRecord(transactionID.Value);
                if (m_logClient.TransactionCount == 0)
                {
                    m_logClient.WriteRestartRecord(this.MajorVersion, true);
                }
            }
            m_mftLock.ReleaseWriterLock();
        }
Пример #3
0
 protected internal virtual void UpdateFileRecord(FileRecord fileRecord)
 {
     m_mft.UpdateFileRecord(fileRecord);
 }