This package contains debugging symbols for libcrush.
Package: libcrush-dev
-Architecture: any
+Architecture: i386 amd64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, libcrush1 (= ${binary:Version})
+ Conflicts: libcrush1-dev
+ Replaces: libcrush1-dev
Description: CRUSH mapping algorithm (development files)
CRUSH is a pseudo-random hash-like algorithm for mapping inputs to
a changing hierarchy of devices without a centralized directory. It was
This package contains debugging symbols for librados.
Package: librados-dev
-Architecture: any
+Architecture: i386 amd64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, librados2 (= ${binary:Version})
+ Conflicts: librados1-dev, librados2-dev
+ Replaces: librados1-dev, librados2-dev
Description: RADOS distributed object store client library (development files)
RADOS is a reliable, autonomic distributed object storage cluster
developed as part of the Ceph distributed storage system. This is a
This package contains debugging symbols for librbd1.
Package: librbd-dev
-Architecture: any
+Architecture: i386 amd64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, librbd1 (= ${binary:Version})
+ Conflicts: librbd1-dev
+ Replaces: librbd1-dev
Description: RADOS block device client library (development files)
RBD is a block device striped across multiple distributed objects
in RADOS, a reliable, autonomic distributed object storage cluster
This package contains debugging symbols for libceph1.
Package: libceph-dev
-Architecture: any
+Architecture: i386 amd64
Section: libdevel
Depends: ${shlibs:Depends}, ${misc:Depends}, libceph1 (= ${binary:Version})
+ Conflicts: libceph1-dev
+ Replaces: libceph1-dev
Description: Ceph distributed file system client library (development files)
Ceph is a distributed network file system designed to provide
excellent performance, reliability, and scalability. This is a
/* sync io */
uint64_t rados_get_last_version(rados_ioctx_t io);
- int rados_write(rados_ioctx_t io, const char *oid, const char *buf, size_t len, off_t off);
+ int rados_write(rados_ioctx_t io, const char *oid, const char *buf, size_t len, uint64_t off);
+ int rados_write_full(rados_ioctx_t io, const char *oid, const char *buf, size_t len, uint64_t off);
+int rados_append(rados_ioctx_t io, const char *oid, const char *buf, size_t len);
- int rados_write_full(rados_ioctx_t io, const char *oid, const char *buf, size_t len, off_t off);
- int rados_read(rados_ioctx_t io, const char *oid, char *buf, size_t len, off_t off);
+ int rados_read(rados_ioctx_t io, const char *oid, char *buf, size_t len, uint64_t off);
int rados_remove(rados_ioctx_t io, const char *oid);
- int rados_trunc(rados_ioctx_t io, const char *oid, size_t size);
+ int rados_trunc(rados_ioctx_t io, const char *oid, uint64_t size);
/* attrs */
int rados_getxattr(rados_ioctx_t io, const char *o, const char *name, char *buf, size_t len);
void rados_aio_release(rados_completion_t c);
int rados_aio_write(rados_ioctx_t io, const char *oid,
rados_completion_t completion,
- const char *buf, size_t len, off_t off);
+ const char *buf, size_t len, uint64_t off);
+int rados_aio_append(rados_ioctx_t io, const char *oid,
+ rados_completion_t completion,
+ const char *buf, size_t len);
int rados_aio_write_full(rados_ioctx_t io, const char *oid,
rados_completion_t completion,
const char *buf, size_t len);
// create an object
int create(const std::string& oid, bool exclusive);
- int write(const std::string& oid, bufferlist& bl, size_t len, off_t off);
+ int write(const std::string& oid, bufferlist& bl, size_t len, uint64_t off);
+ int append(const std::string& oid, bufferlist& bl, size_t len);
int write_full(const std::string& oid, bufferlist& bl);
- int read(const std::string& oid, bufferlist& bl, size_t len, off_t off);
+ int read(const std::string& oid, bufferlist& bl, size_t len, uint64_t off);
int remove(const std::string& oid);
- int trunc(const std::string& oid, size_t size);
- int mapext(const std::string& o, off_t off, size_t len, std::map<off_t, size_t>& m);
- int sparse_read(const std::string& o, std::map<off_t, size_t>& m, bufferlist& bl, size_t len, off_t off);
+ int trunc(const std::string& oid, uint64_t size);
+ int mapext(const std::string& o, uint64_t off, size_t len, std::map<uint64_t,uint64_t>& m);
+ int sparse_read(const std::string& o, std::map<uint64_t, size_t>& m, bufferlist& bl, size_t len, uint64_t off);
int getxattr(const std::string& oid, const char *name, bufferlist& bl);
int getxattrs(const std::string& oid, std::map<std::string, bufferlist>& attrset);
int setxattr(const std::string& oid, const char *name, bufferlist& bl);
uint64_t get_last_version();
int aio_read(const std::string& oid, AioCompletion *c,
- bufferlist *pbl, size_t len, off_t off);
+ bufferlist *pbl, size_t len, uint64_t off);
int aio_sparse_read(const std::string& oid, AioCompletion *c,
- std::map<off_t,size_t> *m, bufferlist *data_bl,
- size_t len, off_t off);
+ std::map<uint64_t,uint64_t> *m, bufferlist *data_bl,
+ size_t len, uint64_t off);
int aio_write(const std::string& oid, AioCompletion *c, const bufferlist& bl,
- size_t len, off_t off);
+ size_t len, uint64_t off);
+ int aio_append(const std::string& oid, AioCompletion *c, const bufferlist& bl,
+ size_t len);
int aio_write_full(const std::string& oid, AioCompletion *c, const bufferlist& bl);
// watch/notify
// io
int create(IoCtxImpl& io, const object_t& oid, bool exclusive);
- int write(IoCtxImpl& io, const object_t& oid, bufferlist& bl, size_t len, off_t off);
+ int write(IoCtxImpl& io, const object_t& oid, bufferlist& bl, size_t len, uint64_t off);
+ int append(IoCtxImpl& io, const object_t& oid, bufferlist& bl, size_t len);
int write_full(IoCtxImpl& io, const object_t& oid, bufferlist& bl);
- int read(IoCtxImpl& io, const object_t& oid, bufferlist& bl, size_t len, off_t off);
- int mapext(IoCtxImpl& io, const object_t& oid, off_t off, size_t len, std::map<off_t,size_t>& m);
- int sparse_read(IoCtxImpl& io, const object_t& oid, std::map<off_t,size_t>& m, bufferlist& bl,
- size_t len, off_t off);
+ int read(IoCtxImpl& io, const object_t& oid, bufferlist& bl, size_t len, uint64_t off);
+ int mapext(IoCtxImpl& io, const object_t& oid, uint64_t off, size_t len, std::map<uint64_t,uint64_t>& m);
+ int sparse_read(IoCtxImpl& io, const object_t& oid, std::map<uint64_t,uint64_t>& m, bufferlist& bl,
+ size_t len, uint64_t off);
int remove(IoCtxImpl& io, const object_t& oid);
int stat(IoCtxImpl& io, const object_t& oid, uint64_t *psize, time_t *pmtime);
- int trunc(IoCtxImpl& io, const object_t& oid, size_t size);
+ int trunc(IoCtxImpl& io, const object_t& oid, uint64_t size);
int tmap_update(IoCtxImpl& io, const object_t& oid, bufferlist& cmdbl);
int exec(IoCtxImpl& io, const object_t& oid, const char *cls, const char *method, bufferlist& inbl, bufferlist& outbl);
};
int aio_read(IoCtxImpl& io, const object_t oid, AioCompletionImpl *c,
- bufferlist *pbl, size_t len, off_t off);
+ bufferlist *pbl, size_t len, uint64_t off);
int aio_read(IoCtxImpl& io, object_t oid, AioCompletionImpl *c,
- char *buf, size_t len, off_t off);
+ char *buf, size_t len, uint64_t off);
int aio_sparse_read(IoCtxImpl& io, const object_t oid,
- AioCompletionImpl *c, std::map<off_t,size_t> *m,
- bufferlist *data_bl, size_t len, off_t off);
+ AioCompletionImpl *c, std::map<uint64_t,uint64_t> *m,
+ bufferlist *data_bl, size_t len, uint64_t off);
int aio_write(IoCtxImpl& io, const object_t &oid, AioCompletionImpl *c,
- const bufferlist& bl, size_t len, off_t off);
+ const bufferlist& bl, size_t len, uint64_t off);
+ int aio_append(IoCtxImpl& io, const object_t &oid, AioCompletionImpl *c,
+ const bufferlist& bl, size_t len);
int aio_write_full(IoCtxImpl& io, const object_t &oid, AioCompletionImpl *c,
const bufferlist& bl);
int librados::IoCtx::
aio_write(const std::string& oid, librados::AioCompletion *c, const bufferlist& bl,
- size_t len, off_t off)
+ size_t len, uint64_t off)
{
- return io_ctx_impl->client->aio_write(*io_ctx_impl, oid, c->pc, bl, len, off );
+ return io_ctx_impl->client->aio_write(*io_ctx_impl, oid, c->pc, bl, len, off);
+}
+
+int librados::IoCtx::
+aio_append(const std::string& oid, librados::AioCompletion *c, const bufferlist& bl,
+ size_t len)
+{
+ return io_ctx_impl->client->aio_append(*io_ctx_impl, oid, c->pc, bl, len);
}
int librados::IoCtx::
return ctx->client->write(*ctx, oid, bl, len, off);
}
- extern "C" int rados_write_full(rados_ioctx_t io, const char *o, const char *buf, size_t len, off_t off)
+extern "C" int rados_append(rados_ioctx_t io, const char *o, const char *buf, size_t len)
+{
+ librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io;
+ object_t oid(o);
+ bufferlist bl;
+ bl.append(buf, len);
+ return ctx->client->append(*ctx, oid, bl, len);
+}
+
+ extern "C" int rados_write_full(rados_ioctx_t io, const char *o, const char *buf, size_t len, uint64_t off)
{
librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io;
object_t oid(o);
dout(10) << "rados_cb" << dendl;
AioBlockCompletion *block_completion = (AioBlockCompletion *)arg;
block_completion->complete(rados_aio_get_return_value(c));
+ delete block_completion;
}
- int aio_write(ImageCtx *ictx, off_t off, size_t len, const char *buf,
+ int aio_write(ImageCtx *ictx, uint64_t off, size_t len, const char *buf,
AioCompletion *c)
{
if (!len)