]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rados : added an aio_remove version taking flags
authorSebastien Ponce <sebastien.ponce@cern.ch>
Fri, 22 Jan 2016 11:26:22 +0000 (12:26 +0100)
committerroot <root@lxbre43a05.cern.ch>
Tue, 1 Nov 2016 15:36:05 +0000 (16:36 +0100)
The synchronous remove exists in both versions, with and without flags, but the asynchronous one did not. I've only fixed this disymetry

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
src/include/rados/librados.hpp
src/librados/IoCtxImpl.cc
src/librados/IoCtxImpl.h
src/librados/librados.cc

index bb7f2b9e59d6addae4cabf364599741e43dd40e5..f4ab24dbc2e1149a98f84f6fb8b1411f5d5653d5 100644 (file)
@@ -950,6 +950,7 @@ namespace librados
      * other than SNAP_HEAD
      */
     int aio_remove(const std::string& oid, AioCompletion *c);
+    int aio_remove(const std::string& oid, AioCompletion *c, int flags);
 
     /**
      * Wait for all currently pending aio writes to be safe.
index b5a2d65e42be706ee870c345b1de9dc83ac8a107..cc115a3d2b7926f3d5e0e26d667dde783df3d9d5 100644 (file)
@@ -974,7 +974,7 @@ int librados::IoCtxImpl::aio_writesame(const object_t &oid,
   return 0;
 }
 
-int librados::IoCtxImpl::aio_remove(const object_t &oid, AioCompletionImpl *c)
+int librados::IoCtxImpl::aio_remove(const object_t &oid, AioCompletionImpl *c, int flags)
 {
   auto ut = ceph::real_clock::now(client->cct);
 
@@ -990,7 +990,7 @@ int librados::IoCtxImpl::aio_remove(const object_t &oid, AioCompletionImpl *c)
 
   Objecter::Op *o = objecter->prepare_remove_op(
     oid, oloc,
-    snapc, ut, 0,
+    snapc, ut, flags,
     onack, onsafe, &c->objver);
   objecter->op_submit(o, &c->tid);
 
index 19fd0b5b6b7e7366812acc3ff7ba6e6ce4ece77a..9e4d4cf0540a1532b173c462911782d60b1efe51 100644 (file)
@@ -202,7 +202,7 @@ struct librados::IoCtxImpl {
                     const bufferlist& bl);
   int aio_writesame(const object_t &oid, AioCompletionImpl *c,
                    const bufferlist& bl, size_t write_len, uint64_t off);
-  int aio_remove(const object_t &oid, AioCompletionImpl *c);
+  int aio_remove(const object_t &oid, AioCompletionImpl *c, int flags=0);
   int aio_exec(const object_t& oid, AioCompletionImpl *c, const char *cls,
               const char *method, bufferlist& inbl, bufferlist *outbl);
   int aio_stat(const object_t& oid, AioCompletionImpl *c, uint64_t *psize, time_t *pmtime);
index a544474fef7a39ddc7f56822af17178ff595a5b4..328f76a3cb6916bcd01697a7b1a93482e20d1d60 100644 (file)
@@ -1840,6 +1840,11 @@ int librados::IoCtx::aio_remove(const std::string& oid, librados::AioCompletion
   return io_ctx_impl->aio_remove(oid, c->pc);
 }
 
+int librados::IoCtx::aio_remove(const std::string& oid, librados::AioCompletion *c, int flags)
+{
+  return io_ctx_impl->aio_remove(oid, c->pc, flags);
+}
+
 int librados::IoCtx::aio_flush_async(librados::AioCompletion *c)
 {
   io_ctx_impl->flush_aio_writes_async(c->pc);