diff options
author | Shehjar Tikoo <shehjart@gluster.com> | 2010-02-25 15:37:45 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2010-03-04 03:12:10 -0800 |
commit | bdf3fc698515b44e6f1a11f6dbc8d9ff4b5fd74e (patch) | |
tree | 4b046729ca9e7dfd4578e82097c6d9cd93e192d6 | |
parent | db199434dfccfb4db5335f6ba18298e9e61bc415 (diff) |
iobuf: Expose macros and create new ones
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 597 (miscellaneous fixes for xlators to work well with NFS xlator)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=597
-rw-r--r-- | libglusterfs/src/iobuf.c | 9 | ||||
-rw-r--r-- | libglusterfs/src/iobuf.h | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/libglusterfs/src/iobuf.c b/libglusterfs/src/iobuf.c index c2c1b9ac3e6..e075bf52445 100644 --- a/libglusterfs/src/iobuf.c +++ b/libglusterfs/src/iobuf.c @@ -740,3 +740,12 @@ iobuf_stats_dump (struct iobuf_pool *iobuf_pool) return; } + + +void +iobuf_to_iovec(struct iobuf *iob, struct iovec *iov) +{ + iov->iov_base = iobuf_ptr (iob); + iov->iov_len = iobuf_pagesize (iob); +} + diff --git a/libglusterfs/src/iobuf.h b/libglusterfs/src/iobuf.h index 9d35a8191e6..bc2209958cf 100644 --- a/libglusterfs/src/iobuf.h +++ b/libglusterfs/src/iobuf.h @@ -24,6 +24,7 @@ #include "common-utils.h" #include <pthread.h> #include <sys/mman.h> +#include <sys/uio.h> /* Lets try to define the new anonymous mapping * flag, in case the system is still using the @@ -107,6 +108,13 @@ struct iobuf_pool *iobuf_pool_new (size_t arena_size, size_t page_size); void iobuf_pool_destroy (struct iobuf_pool *iobuf_pool); struct iobuf *iobuf_get (struct iobuf_pool *iobuf_pool); void iobuf_unref (struct iobuf *iobuf); +struct iobuf *iobuf_ref (struct iobuf *iobuf); +void iobuf_pool_destroy (struct iobuf_pool *iobuf_pool); +void iobuf_to_iovec(struct iobuf *iob, struct iovec *iov); + +#define iobuf_ptr(iob) ((iob)->ptr) +#define iobpool_pagesize(iobpool) ((iobpool)->page_size) +#define iobuf_pagesize(iob) (iobpool_pagesize((iob)->iobuf_arena->iobuf_pool)) struct iobref { |