From 4834c4c7462630c38f9dddd56fea6835829f36db Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 10 Feb 2012 16:47:33 -0800 Subject: [PATCH] osd: check for valid snapc _before_ doing op work Check this early to avoid wasting effort, or causing side-effects from do_osd_op_effects(). Signed-off-by: Sage Weil --- src/osd/ReplicatedPG.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 158c049a88428..b98a4e6308eff 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2680,6 +2680,12 @@ int ReplicatedPG::prepare_transaction(OpContext *ctx) bool head_existed = ctx->obs->exists; + // valid snap context? + if (!ctx->snapc.is_valid()) { + dout(10) << " invalid snapc " << ctx->snapc << dendl; + return -EINVAL; + } + // prepare the actual mutation int result = do_osd_ops(ctx, ctx->ops); if (result < 0) @@ -2697,13 +2703,6 @@ int ReplicatedPG::prepare_transaction(OpContext *ctx) // there was a modification! - - // valid snap context? - if (!ctx->snapc.is_valid()) { - dout(10) << " invalid snapc " << ctx->snapc << dendl; - return -EINVAL; - } - make_writeable(ctx); if (ctx->user_modify) { -- 2.39.5