From b813b17ba4c2d3dbf3e9d2bad3b562d1807ec1f1 Mon Sep 17 00:00:00 2001 From: Seena Fallah Date: Sat, 7 Jun 2025 22:10:38 +0200 Subject: [PATCH] rgw: pass DataProcessorFactory to copy_object Co-authored-by: Marcus Watts Signed-off-by: Seena Fallah --- src/rgw/driver/d4n/rgw_sal_d4n.cc | 3 ++- src/rgw/driver/d4n/rgw_sal_d4n.h | 1 + src/rgw/driver/daos/rgw_sal_daos.cc | 2 +- src/rgw/driver/daos/rgw_sal_daos.h | 4 ++-- src/rgw/driver/motr/rgw_sal_motr.cc | 1 + src/rgw/driver/motr/rgw_sal_motr.h | 1 + src/rgw/driver/posix/rgw_sal_posix.cc | 1 + src/rgw/driver/posix/rgw_sal_posix.h | 1 + src/rgw/driver/rados/rgw_sal_rados.cc | 1 + src/rgw/driver/rados/rgw_sal_rados.h | 1 + src/rgw/rgw_sal.h | 1 + src/rgw/rgw_sal_dbstore.cc | 1 + src/rgw/rgw_sal_dbstore.h | 1 + src/rgw/rgw_sal_filter.cc | 3 ++- src/rgw/rgw_sal_filter.h | 1 + src/test/rgw/test_d4n_filter.cc | 18 ++++++++++++++++++ 16 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/rgw/driver/d4n/rgw_sal_d4n.cc b/src/rgw/driver/d4n/rgw_sal_d4n.cc index 3be2ff5e06e..2eaed616bfc 100644 --- a/src/rgw/driver/d4n/rgw_sal_d4n.cc +++ b/src/rgw/driver/d4n/rgw_sal_d4n.cc @@ -653,6 +653,7 @@ int D4NFilterObject::copy_object(const ACLOwner& owner, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { @@ -684,7 +685,7 @@ int D4NFilterObject::copy_object(const ACLOwner& owner, mod_ptr, unmod_ptr, high_precision_time, if_match, if_nomatch, attrs_mod, copy_if_newer, attrs, category, olh_epoch, delete_at, version_id, tag, - etag, progress_cb, progress_data, dpp, y); + etag, progress_cb, progress_data, dp_factory, dpp, y); if (ret < 0) { ldpp_dout(dpp, 10) << "D4NFilterObject::" << __func__ << "(): next->copy_object failed with ret: " << ret << dendl; return ret; diff --git a/src/rgw/driver/d4n/rgw_sal_d4n.h b/src/rgw/driver/d4n/rgw_sal_d4n.h index cf3ae1539bf..baa25d2c5f1 100644 --- a/src/rgw/driver/d4n/rgw_sal_d4n.h +++ b/src/rgw/driver/d4n/rgw_sal_d4n.h @@ -256,6 +256,7 @@ class D4NFilterObject : public FilterObject { std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; diff --git a/src/rgw/driver/daos/rgw_sal_daos.cc b/src/rgw/driver/daos/rgw_sal_daos.cc index d04a0b3b92d..35ad0824d74 100644 --- a/src/rgw/driver/daos/rgw_sal_daos.cc +++ b/src/rgw/driver/daos/rgw_sal_daos.cc @@ -1232,7 +1232,7 @@ int DaosObject::copy_object( RGWObjCategory category, uint64_t olh_epoch, boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void*), - void* progress_data, const DoutPrefixProvider* dpp, optional_yield y) { + void* progress_data, rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { return DAOS_NOT_IMPLEMENTED_LOG(dpp); } diff --git a/src/rgw/driver/daos/rgw_sal_daos.h b/src/rgw/driver/daos/rgw_sal_daos.h index b95c6e49c5c..9eed25b46c1 100644 --- a/src/rgw/driver/daos/rgw_sal_daos.h +++ b/src/rgw/driver/daos/rgw_sal_daos.h @@ -614,8 +614,8 @@ class DaosObject : public StoreObject { RGWObjCategory category, uint64_t olh_epoch, boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void*), - void* progress_data, const DoutPrefixProvider* dpp, - optional_yield y) override; + void* progress_data, rgw::sal::DataProcessorFactory* dp_factory, + const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override { return acls; } virtual int set_acl(const RGWAccessControlPolicy& acl) override { acls = acl; diff --git a/src/rgw/driver/motr/rgw_sal_motr.cc b/src/rgw/driver/motr/rgw_sal_motr.cc index 324e098e1ea..f685bdf51f0 100644 --- a/src/rgw/driver/motr/rgw_sal_motr.cc +++ b/src/rgw/driver/motr/rgw_sal_motr.cc @@ -1542,6 +1542,7 @@ int MotrObject::copy_object(const ACLOwner& owner, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), + rgw::sal::DataProcessorFactory* dp_factory, void* progress_data, const DoutPrefixProvider* dpp, optional_yield y) diff --git a/src/rgw/driver/motr/rgw_sal_motr.h b/src/rgw/driver/motr/rgw_sal_motr.h index cf4cf1069b0..bce464faffa 100644 --- a/src/rgw/driver/motr/rgw_sal_motr.h +++ b/src/rgw/driver/motr/rgw_sal_motr.h @@ -677,6 +677,7 @@ class MotrObject : public StoreObject { boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override { return acls; } virtual int set_acl(const RGWAccessControlPolicy& acl) override { acls = acl; return 0; } diff --git a/src/rgw/driver/posix/rgw_sal_posix.cc b/src/rgw/driver/posix/rgw_sal_posix.cc index 0da11e43fe0..d762b5768de 100644 --- a/src/rgw/driver/posix/rgw_sal_posix.cc +++ b/src/rgw/driver/posix/rgw_sal_posix.cc @@ -2980,6 +2980,7 @@ int POSIXObject::copy_object(const ACLOwner& owner, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { diff --git a/src/rgw/driver/posix/rgw_sal_posix.h b/src/rgw/driver/posix/rgw_sal_posix.h index 443842838b5..488fbf6e016 100644 --- a/src/rgw/driver/posix/rgw_sal_posix.h +++ b/src/rgw/driver/posix/rgw_sal_posix.h @@ -1035,6 +1035,7 @@ public: boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override { return acls; } virtual int set_acl(const RGWAccessControlPolicy& acl) override { acls = acl; return 0; } diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index b193a0a4c5c..90813103ef8 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -3703,6 +3703,7 @@ int RadosObject::copy_object(const ACLOwner& owner, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { diff --git a/src/rgw/driver/rados/rgw_sal_rados.h b/src/rgw/driver/rados/rgw_sal_rados.h index 5fa42b6c4d4..3af6ee24ffd 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.h +++ b/src/rgw/driver/rados/rgw_sal_rados.h @@ -583,6 +583,7 @@ class RadosObject : public StoreObject { boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override { return acls; } virtual int set_acl(const RGWAccessControlPolicy& acl) override { acls = acl; return 0; } diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 60688a66bc1..9a2e8b6d7c6 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -1231,6 +1231,7 @@ class Object { boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) = 0; /** return logging subsystem */ diff --git a/src/rgw/rgw_sal_dbstore.cc b/src/rgw/rgw_sal_dbstore.cc index 3e87e6045d0..6ab8e9711be 100644 --- a/src/rgw/rgw_sal_dbstore.cc +++ b/src/rgw/rgw_sal_dbstore.cc @@ -772,6 +772,7 @@ namespace rgw::sal { std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { diff --git a/src/rgw/rgw_sal_dbstore.h b/src/rgw/rgw_sal_dbstore.h index 37e445a9c1c..7db6a0424f4 100644 --- a/src/rgw/rgw_sal_dbstore.h +++ b/src/rgw/rgw_sal_dbstore.h @@ -559,6 +559,7 @@ protected: boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override { return acls; } virtual int set_acl(const RGWAccessControlPolicy& acl) override { acls = acl; return 0; } diff --git a/src/rgw/rgw_sal_filter.cc b/src/rgw/rgw_sal_filter.cc index 0cc849ce905..5fe836a091b 100644 --- a/src/rgw/rgw_sal_filter.cc +++ b/src/rgw/rgw_sal_filter.cc @@ -1045,6 +1045,7 @@ int FilterObject::copy_object(const ACLOwner& owner, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) { @@ -1056,7 +1057,7 @@ int FilterObject::copy_object(const ACLOwner& owner, mod_ptr, unmod_ptr, high_precision_time, if_match, if_nomatch, attrs_mod, copy_if_newer, attrs, category, olh_epoch, delete_at, version_id, tag, - etag, progress_cb, progress_data, dpp, y); + etag, progress_cb, progress_data, dp_factory, dpp, y); } RGWAccessControlPolicy& FilterObject::get_acl() diff --git a/src/rgw/rgw_sal_filter.h b/src/rgw/rgw_sal_filter.h index c3f628baded..3f81cd4fde2 100644 --- a/src/rgw/rgw_sal_filter.h +++ b/src/rgw/rgw_sal_filter.h @@ -782,6 +782,7 @@ public: boost::optional delete_at, std::string* version_id, std::string* tag, std::string* etag, void (*progress_cb)(off_t, void *), void* progress_data, + rgw::sal::DataProcessorFactory* dp_factory, const DoutPrefixProvider* dpp, optional_yield y) override; virtual RGWAccessControlPolicy& get_acl(void) override; virtual int set_acl(const RGWAccessControlPolicy& acl) override { return next->set_acl(acl); } diff --git a/src/test/rgw/test_d4n_filter.cc b/src/test/rgw/test_d4n_filter.cc index 55ba5661caa..77a27daac25 100755 --- a/src/test/rgw/test_d4n_filter.cc +++ b/src/test/rgw/test_d4n_filter.cc @@ -469,6 +469,7 @@ TEST_F(D4NFilterFixture, CopyNoneObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -580,6 +581,7 @@ TEST_F(D4NFilterFixture, CopyMergeObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -667,6 +669,7 @@ TEST_F(D4NFilterFixture, CopyReplaceObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -955,6 +958,7 @@ TEST_F(D4NFilterFixture, CopyNoneVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1009,6 +1013,7 @@ TEST_F(D4NFilterFixture, CopyNoneVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1094,6 +1099,7 @@ TEST_F(D4NFilterFixture, CopyMergeVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1148,6 +1154,7 @@ TEST_F(D4NFilterFixture, CopyMergeVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1233,6 +1240,7 @@ TEST_F(D4NFilterFixture, CopyReplaceVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1287,6 +1295,7 @@ TEST_F(D4NFilterFixture, CopyReplaceVersionedObjectRead) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1653,6 +1662,7 @@ TEST_F(D4NFilterFixture, CopyNoneObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1774,6 +1784,7 @@ TEST_F(D4NFilterFixture, CopyMergeObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -1895,6 +1906,7 @@ TEST_F(D4NFilterFixture, CopyReplaceObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2409,6 +2421,7 @@ TEST_F(D4NFilterFixture, CopyNoneVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2500,6 +2513,7 @@ TEST_F(D4NFilterFixture, CopyNoneVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2628,6 +2642,7 @@ TEST_F(D4NFilterFixture, CopyMergeVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2719,6 +2734,7 @@ TEST_F(D4NFilterFixture, CopyMergeVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2847,6 +2863,7 @@ TEST_F(D4NFilterFixture, CopyReplaceVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); @@ -2938,6 +2955,7 @@ TEST_F(D4NFilterFixture, CopyReplaceVersionedObjectWrite) &tag, nullptr, nullptr, + nullptr, env->dpp, optional_yield({yield})); EXPECT_EQ(ret, 0); -- 2.47.3