From 6ca070ad2ffa1c73d3cfd71de8ec27bbf82edd21 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 12 Mar 2012 13:33:55 -0700 Subject: [PATCH] FileStore: ignore ERANGE and ENOENT on replay The source object may either not exist or be the wrong size during replay if the destination object was deleted in a future already-applied operation. This should not impact correctness of the replay. Signed-off-by: Samuel Just --- src/os/FileStore.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index c8c713afa2776..7f198dfd8f49a 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -2725,6 +2725,14 @@ unsigned FileStore::_do_transaction(Transaction& t, uint64_t op_seq, int trans_n dout(10) << "tolerating EEXIST during journal replay since btrfs_snap is not enabled" << dendl; ok = true; } + if (r == -ERANGE) { + dout(10) << "tolerating ERANGE on replay" << dendl; + ok = true; + } + if (r == -ENOENT) { + dout(10) << "tolerating ENOENT on replay" << dendl; + ok = true; + } } if (!ok) { -- 2.39.5