]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/sal: Object::get_serializer() takes optional_yield
authorCasey Bodley <cbodley@redhat.com>
Tue, 17 Mar 2026 16:54:18 +0000 (12:54 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 17 Mar 2026 22:52:07 +0000 (18:52 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/driver/posix/rgw_sal_posix.cc
src/rgw/driver/posix/rgw_sal_posix.h
src/rgw/driver/rados/rgw_sal_rados.cc
src/rgw/driver/rados/rgw_sal_rados.h
src/rgw/rgw_op.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_dbstore.cc
src/rgw/rgw_sal_dbstore.h
src/rgw/rgw_sal_filter.cc
src/rgw/rgw_sal_filter.h

index bb8b285c6f643d3704fd2c7d57cfe89f36eb2431..eb54567711a666a4d5d495e17b0aa38e61a65e66 100644 (file)
@@ -3208,7 +3208,7 @@ void POSIXObject::gen_rand_obj_instance_name()
   state.obj.key.set_instance(gen_rand_instance_name());
 }
 
-std::unique_ptr<MPSerializer> POSIXObject::get_serializer(const DoutPrefixProvider *dpp, const std::string& lock_name)
+std::unique_ptr<MPSerializer> POSIXObject::get_serializer(const DoutPrefixProvider *dpp, optional_yield y, const std::string& lock_name)
 {
   return std::make_unique<MPPOSIXSerializer>(dpp, driver, this, lock_name);
 }
index f38e77623f7756c3eae05cadbf6ac41575ce3211..4e6eb0ed255ecd07ca9464bc2398e41cd0b85ef9 100644 (file)
@@ -1061,7 +1061,7 @@ public:
                               optional_yield y) override;
   virtual bool is_expired() override;
   virtual void gen_rand_obj_instance_name() override;
-  virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp,
+  virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp, optional_yield y,
                                                       const std::string& lock_name) override;
   virtual int transition(Bucket* bucket,
                         const rgw_placement_rule& placement_rule,
index 9b05a402307c144e547bf377783c61622344e15f..1a54761faa2851b0c29f7344d42b9d32285218fa 100644 (file)
@@ -3193,7 +3193,7 @@ int RadosObject::chown(User& new_user, const DoutPrefixProvider* dpp, optional_y
   return 0;
 }
 
-std::unique_ptr<MPSerializer> RadosObject::get_serializer(const DoutPrefixProvider *dpp, const std::string& lock_name)
+std::unique_ptr<MPSerializer> RadosObject::get_serializer(const DoutPrefixProvider *dpp, optional_yield y, const std::string& lock_name)
 {
   return std::make_unique<MPRadosSerializer>(dpp, store, this, lock_name);
 }
index c2a018a56c5d12ea7b4e46f9519059f38e9a8f72..0ad0bf4caf0a5ed4a6f2a80ecf04a5230489bbdd 100644 (file)
@@ -623,7 +623,7 @@ class RadosObject : public StoreObject {
     virtual std::unique_ptr<Object> clone() override {
       return std::unique_ptr<Object>(new RadosObject(*this));
     }
-    virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp,
+    virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp, optional_yield y,
                                                         const std::string& lock_name) override;
     virtual int transition(Bucket* bucket,
                           const rgw_placement_rule& placement_rule,
index d8bc5db2b6c59e84a8d085e5ff26f5689ee3f816..bd3cfe2a4e2d60b8f198d4d033b2761140cc8125 100644 (file)
@@ -7434,7 +7434,7 @@ void RGWCompleteMultipart::execute(optional_yield y)
     s->cct->_conf.get_val<int64_t>("rgw_mp_lock_max_time");
   const ceph::timespan dur = std::chrono::seconds(max_lock_secs_mp);
 
-  serializer = meta_obj->get_serializer(this, "RGWCompleteMultipart");
+  serializer = meta_obj->get_serializer(this, y, "RGWCompleteMultipart");
   op_ret = serializer->try_lock(this, dur, y);
   if (op_ret < 0) {
     ldpp_dout(this, 0) << "failed to acquire lock" << dendl;
@@ -7724,7 +7724,7 @@ void RGWAbortMultipart::execute(optional_yield y)
   int max_lock_secs_mp =
     s->cct->_conf.get_val<int64_t>("rgw_mp_lock_max_time");
   const ceph::timespan dur = std::chrono::seconds(max_lock_secs_mp);
-  auto serializer = meta_obj->get_serializer(this, "RGWCompleteMultipart");
+  auto serializer = meta_obj->get_serializer(this, y, "RGWCompleteMultipart");
   op_ret = serializer->try_lock(this, dur, y);
   if (op_ret < 0) {
     if (op_ret == -ENOENT) {
index 5b7155868ea133bd9615db58b1e81d9dc37dbc5c..efdad9d5195f8ef776ccc8591262a1c8e7b24001 100644 (file)
@@ -1291,7 +1291,7 @@ class Object {
     /** Create a randomized instance ID for this object */
     virtual void gen_rand_obj_instance_name() = 0;
     /** Get a multipart serializer for this object */
-    virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp,
+    virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp, optional_yield y,
                                                         const std::string& lock_name) = 0;
     /** Move the data of an object to new placement storage */
     virtual int transition(Bucket* bucket,
index 960531389a3417b03412eb262b3d6d3e1b851a87..4d2394bf6b686ed9682509efdcb1b30bc20df920 100644 (file)
@@ -612,6 +612,7 @@ namespace rgw::sal {
   }
 
   std::unique_ptr<MPSerializer> DBObject::get_serializer(const DoutPrefixProvider *dpp,
+                                                        optional_yield y,
                                                         const std::string& lock_name)
   {
     return std::make_unique<MPDBSerializer>(dpp, store, this, lock_name);
index d645a0f2b1920780a13384c322e2d3590c2a1eed..2994beed017bac4a946f42be88e6ea99adf4df25 100644 (file)
@@ -589,6 +589,7 @@ protected:
         return std::unique_ptr<Object>(new DBObject(*this));
       }
       virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp,
+                                                          optional_yield y,
                                                           const std::string& lock_name) override;
       virtual int transition(Bucket* bucket,
           const rgw_placement_rule& placement_rule,
index 6103fecff5c33623f98b57fd13de44d25cb55431..8e89d0ac3b35d116d83403adbb6ed6c2a896720b 100644 (file)
@@ -1114,10 +1114,10 @@ void FilterObject::gen_rand_obj_instance_name()
   return next->gen_rand_obj_instance_name();
 }
 
-std::unique_ptr<MPSerializer> FilterObject::get_serializer(const DoutPrefixProvider *dpp,
+std::unique_ptr<MPSerializer> FilterObject::get_serializer(const DoutPrefixProvider *dpp, optional_yield y,
                                                           const std::string& lock_name)
 {
-  std::unique_ptr<MPSerializer> s = next->get_serializer(dpp, lock_name);
+  std::unique_ptr<MPSerializer> s = next->get_serializer(dpp, y, lock_name);
   return std::make_unique<FilterMPSerializer>(std::move(s));
 }
 
index 840c1f157caab31ea7ac16488aabcc1bc9b04df2..a92da3477408490d9f11b46c558794387ceb6457 100644 (file)
@@ -819,7 +819,7 @@ public:
                               optional_yield y) override;
   virtual bool is_expired() override;
   virtual void gen_rand_obj_instance_name() override;
-  virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp,
+  virtual std::unique_ptr<MPSerializer> get_serializer(const DoutPrefixProvider *dpp, optional_yield y,
                                                       const std::string& lock_name) override;
   virtual int transition(Bucket* bucket,
                         const rgw_placement_rule& placement_rule,