]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: remove unnecessary bufferptr[] for writev 11836/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 2 Nov 2016 13:18:50 +0000 (09:18 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 14 Nov 2016 02:12:36 +0000 (21:12 -0500)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/client/Client.cc

index 202478b4b014f5963d6ff9b9fd092ad6f5d86015..4c97d8a8796aa463993f9b39e4d99c66d506cf73 100644 (file)
@@ -8813,20 +8813,15 @@ int Client::_write(Fh *f, int64_t offset, uint64_t size, const char *buf,
 
   // copy into fresh buffer (since our write may be resub, async)
   bufferlist bl;
-  bufferptr *bparr = NULL;
   if (buf) {
-      bufferptr bp;
-      if (size > 0) bp = buffer::copy(buf, size);
-      bl.push_back( bp );
+    if (size > 0)
+      bl.append(buf, size);
   } else if (iov){
-      //iov case 
-      bparr = new bufferptr[iovcnt];
-      for (int i = 0; i < iovcnt; i++) {
-        if (iov[i].iov_len > 0) {
-            bparr[i] = buffer::copy((char*)iov[i].iov_base, iov[i].iov_len);
-        }
-        bl.push_back( bparr[i] );
+    for (int i = 0; i < iovcnt; i++) {
+      if (iov[i].iov_len > 0) {
+        bl.append((const char *)iov[i].iov_base, iov[i].iov_len);
       }
+    }
   }
 
   utime_t lat;
@@ -8834,7 +8829,6 @@ int Client::_write(Fh *f, int64_t offset, uint64_t size, const char *buf,
   int have;
   int r = get_caps(in, CEPH_CAP_FILE_WR, CEPH_CAP_FILE_BUFFER, &have, endoff);
   if (r < 0) {
-    delete[] bparr;
     return r;
   }
 
@@ -8983,7 +8977,6 @@ done:
   }
 
   put_cap_ref(in, CEPH_CAP_FILE_WR);
-  delete[] bparr; 
   return r;
 }