summaryrefslogtreecommitdiff
path: root/src/os/FileStore.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/FileStore.cc')
-rw-r--r--src/os/FileStore.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc
index 10f2b1f2aad..17105c11d69 100644
--- a/src/os/FileStore.cc
+++ b/src/os/FileStore.cc
@@ -220,7 +220,8 @@ int FileStore::lfn_open(coll_t cid,
r = get_index(cid, index);
}
Mutex::Locker l(fdcache_lock);
- *outfd = fdcache.lookup(oid);
+ if (!replaying)
+ *outfd = fdcache.lookup(oid);
if (*outfd) {
return 0;
}
@@ -258,7 +259,10 @@ int FileStore::lfn_open(coll_t cid,
goto fail;
}
}
- *outfd = fdcache.add(oid, fd);
+ if (!replaying)
+ *outfd = fdcache.add(oid, fd);
+ else
+ *outfd = FDRef(new FDCache::FD(fd));
return 0;
fail:
@@ -3060,7 +3064,8 @@ int FileStore::_write(coll_t cid, const hobject_t& oid,
r = bl.length();
// flush?
- wbthrottle.queue_wb(fd, oid, offset, len, replica);
+ if (!replaying)
+ wbthrottle.queue_wb(fd, oid, offset, len, replica);
lfn_close(fd);
out: