From: Casey Bodley Date: Mon, 20 Feb 2023 22:27:28 +0000 (-0500) Subject: rgw/rados: RadosReadOp::prepare only updates object instance X-Git-Tag: v19.0.0~50^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fc57159ef7e5b46e0198db98fff5c7ac8f8880c;p=ceph.git rgw/rados: RadosReadOp::prepare only updates object instance when called on a versioned object, prepare() may follow olh and look up a different object instance but when called on a multipart part, we should not overwrite the original object name with the part's object name (of the form mymultipart.2~_XLFNqOW0NuiALg7q4-Hi_7hdtAkZUH.1) Signed-off-by: Casey Bodley --- diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index e619e9681148..f536b7609e85 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -1955,7 +1955,7 @@ int RadosObject::RadosReadOp::prepare(optional_yield y, const DoutPrefixProvider if (ret < 0) return ret; - source->set_key(parent_op.state.obj.key); + source->set_instance(parent_op.state.obj.key.instance); source->set_obj_size(obj_size); return ret;