From 39c1bfc457d03e8cc618d079d72f141dcc1b530d Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 22 Apr 2014 15:12:52 -0700 Subject: [PATCH] ReplicatedPG::do_op: don't return ENOENT for whiteout on snapdir read Signed-off-by: Samuel Just --- src/osd/ReplicatedPG.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 38fb6ef3bfb..2a4efdc7d3c 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1528,8 +1528,11 @@ void ReplicatedPG::do_op(OpRequestRef op) reply_ctx(ctx, -ENFILE); return; } - if (!op->may_write() && !op->may_cache() && (!obc->obs.exists || - obc->obs.oi.is_whiteout())) { + if (!op->may_write() && + !op->may_cache() && + (!obc->obs.exists || + ((m->get_snapid() != CEPH_SNAPDIR) && + obc->obs.oi.is_whiteout()))) { reply_ctx(ctx, -ENOENT); return; } -- 2.47.3