mirror of
https://github.com/ceph/ceph
synced 2025-01-18 17:12:29 +00:00
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 <sage@newdream.net>
This commit is contained in:
parent
a0caa851ed
commit
4834c4c746
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user