]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: check client write status on swift get_obj
authorYehuda Sadeh <yehuda@inktank.com>
Mon, 22 Oct 2012 19:41:30 +0000 (12:41 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Mon, 22 Oct 2012 19:41:30 +0000 (12:41 -0700)
Fixes: #3381
We check the return code of the cio->write() operation
when doing get_obj(). This makes sure that we don't
continue processing the request if client has disconnected.
This commit complements another commit that does the same
for the specific s3 operation.

backport: argonaut
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_rest_swift.cc

index d3d45e5525c318265f8a6eccdb84606d08895f0a..6fefb548e75be981aaaac0dde6d6501ce20fc3c7 100644 (file)
@@ -492,7 +492,9 @@ int RGWGetObj_ObjStore_SWIFT::send_response(bufferlist& bl)
 
 send_data:
   if (get_data && !orig_ret) {
-    s->cio->write(bl.c_str(), len);
+    int r = s->cio->write(bl.c_str(), len);
+    if (r < 0)
+      return r;
   }
   rgw_flush_formatter_and_reset(s, s->formatter);