How about making this a part of `OpsExecuter`? That way you could reuse the big `switch (osd_op.op.op)` we already have in `execute_osd_op()` for `user_modify`. There is `do_write_op()` logic which might be useful.  Also, IIRC `seastar::do_with()` imposes extra `memcpy` we squeezed with `auto ox = std::make_unique<OpsExecuter>`. It's rather small issue but my general impression was it's better to avoid `do_with()` in performance-critical areas.