]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw_file: allocate new id for continued request
authortaoCH <sebastien.chen92@gmail.com>
Fri, 21 Dec 2018 08:26:41 +0000 (16:26 +0800)
committerMatt Benjamin <mbenjamin@redhat.com>
Wed, 15 May 2019 14:07:52 +0000 (10:07 -0400)
Fixed: http://tracker.ceph.com/issues/37734

Signed-off-by: Tao Chen <chentao@umcloud.com>
src/rgw/rgw_file.h
src/rgw/rgw_lib.h

index 2da5187deb2bccc211cc1c09a40f37b3689bf6f0..bbf7d3e2f7aca6412aa03e0aa3f11cdc0e866a2e 100644 (file)
@@ -2365,7 +2365,8 @@ public:
 
   RGWWriteRequest(CephContext* _cct, RGWUserInfo *_user, RGWFileHandle* _fh,
                  const std::string& _bname, const std::string& _oname)
-    : RGWLibContinuedReq(_cct, _user), bucket_name(_bname), obj_name(_oname),
+    : RGWLibContinuedReq(_cct, _user, rgwlib.get_store()->get_new_req_id()), 
+      bucket_name(_bname), obj_name(_oname),
       rgw_fh(_fh), filter(nullptr), real_ofs(0),
       bytes_written(0), eio(false) {
 
index 357133b0a6af99b2318599b5da647def570c24d2..962e84cbc4c7c29346515e71794f3666d526980b 100644 (file)
@@ -134,8 +134,8 @@ namespace rgw {
     /* unambiguiously return req_state */
     inline struct req_state* get_state() { return this->RGWRequest::s; }
 
-    RGWLibRequest(CephContext* _cct, RGWUserInfo* _user)
-      :  RGWRequest(0), cct(_cct), user(_user)
+    RGWLibRequest(CephContext* _cct, RGWUserInfo* _user, uint64_t id = 0)
+      :  RGWRequest(id), cct(_cct), user(_user)
       {}
 
     RGWUserInfo* get_user() { return user; }
@@ -189,8 +189,8 @@ namespace rgw {
     RGWObjectCtx rados_ctx;
   public:
 
-    RGWLibContinuedReq(CephContext* _cct, RGWUserInfo* _user)
-      :  RGWLibRequest(_cct, _user), io_ctx(),
+    RGWLibContinuedReq(CephContext* _cct, RGWUserInfo* _user, uint64_t id = 0)
+      :  RGWLibRequest(_cct, _user, id), io_ctx(),
         rstate(_cct, &io_ctx.get_env(), _user, id),
         rados_ctx(rgwlib.get_store(), &rstate)
       {