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); } } } }
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(); }
protected internal virtual void UpdateFileRecord(FileRecord fileRecord) { m_mft.UpdateFileRecord(fileRecord); }