]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #9950 from weiqiaomiao/wqm-wip-fetchobj-req
authorCasey Bodley <cbodley@users.noreply.github.com>
Thu, 4 May 2017 18:13:01 +0000 (14:13 -0400)
committerGitHub <noreply@github.com>
Thu, 4 May 2017 18:13:01 +0000 (14:13 -0400)
rgw: should delete in_stream_req  if conn->get_obj(...) return not zero value

Reviewed-by: Casey Bodley <cbodley@redhat.com>
1  2 
src/rgw/rgw_rest_conn.cc

index 22534d8656dea9aaa76f174f5c51ff2f8f1cebdd,509df4ee280d830e9829ff396058e35c3acb4dec..71a11554d2ce597835d098fb5f95491a1a2c80f8
@@@ -203,13 -163,18 +203,19 @@@ int RGWRESTConn::get_obj(const rgw_user
      set_header(mod_pg_ver, extra_headers, "HTTP_DEST_PG_VER");
    }
  
-   return (*req)->get_obj(key, extra_headers, obj);
+   int r = (*req)->get_obj(key, extra_headers, obj);
+   if (r < 0) {
+     delete *req;
+     *req = nullptr;
+   }
+   
+   return r;
  }
  
 -int RGWRESTConn::complete_request(RGWRESTStreamReadRequest *req, string& etag, real_time *mtime, map<string, string>& attrs)
 +int RGWRESTConn::complete_request(RGWRESTStreamRWRequest *req, string& etag, real_time *mtime,
 +                                  uint64_t *psize, map<string, string>& attrs)
  {
 -  int ret = req->complete(etag, mtime, attrs);
 +  int ret = req->complete(etag, mtime, psize, attrs);
    delete req;
  
    return ret;