diff --git a/src/bees-context.cc b/src/bees-context.cc index fd360c5..62f8f05 100644 --- a/src/bees-context.cc +++ b/src/bees-context.cc @@ -173,13 +173,6 @@ BeesContext::dedup(const BeesRangePair &brp) brp.first.fd(shared_from_this()); brp.second.fd(shared_from_this()); -#if 0 - // This avoids some sort of kernel race condition; - // however, it also doubles our dedup times. - // Is avoiding a crash every few weeks worth it? - bees_sync(brp.first.fd()); -#endif - BEESTOOLONG("dedup " << brp); BeesAddress first_addr(brp.first.fd(), brp.first.begin()); diff --git a/src/bees.cc b/src/bees.cc index 91534ae..aa47609 100644 --- a/src/bees.cc +++ b/src/bees.cc @@ -416,6 +416,12 @@ BeesStringFile::write(string contents) // This triggers too many btrfs bugs. I wish I was kidding. // Forget snapshots, balance, compression, and dedup: // the system call you have to fear on btrfs is fsync(). + // Also note that when bees renames a temporary over an + // existing file, it flushes the temporary, so we get + // the right behavior if we just do nothing here + // (except when the file is first created; however, + // in that case the result is the same as if the file + // did not exist, was empty, or was filled with garbage). BEESNOTE("fsyncing " << tmpname << " in " << name_fd(m_dir_fd)); DIE_IF_NON_ZERO(fsync(ofd)); #endif