summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src
diff options
context:
space:
mode:
authorPrashanth Pai <nullpai@gmail.com>2013-02-22 15:52:29 +0530
committerAnand Avati <avati@redhat.com>2013-03-20 19:51:50 -0700
commitfbb94768cb579f85416333f98a0fa655e10f88fc (patch)
tree7cb19c0a240558dc2e9d7ef362172fb3f3e880a6 /libglusterfs/src
parentf325551e4c56f743cd1e2b9174d8b7dc9f861675 (diff)
iobuf: Added a function iobref_clear
Original-author: Venky Shankar <vshankar@redhat.com> Change-Id: Ibf861db6c1b084b798d210962344487a1919aad2 BUG: 921942 Signed-off-by: Prashanth Pai <nullpai@gmail.com> Reviewed-on: http://review.gluster.org/4595 Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r--libglusterfs/src/iobuf.c23
-rw-r--r--libglusterfs/src/iobuf.h2
2 files changed, 24 insertions, 1 deletions
diff --git a/libglusterfs/src/iobuf.c b/libglusterfs/src/iobuf.c
index 86bf697e879..a89e962673f 100644
--- a/libglusterfs/src/iobuf.c
+++ b/libglusterfs/src/iobuf.c
@@ -841,6 +841,29 @@ out:
}
+void
+iobref_clear (struct iobref *iobref)
+{
+ int i = 0;
+
+ GF_VALIDATE_OR_GOTO ("iobuf", iobref, out);
+
+ for (; i < GF_IOBREF_IOBUF_COUNT; i++) {
+ if (iobref->iobrefs[i] != NULL) {
+ iobuf_unref (iobref->iobrefs[i]);
+ } else {
+ /** iobuf's are attched serially */
+ break;
+ }
+ }
+
+ iobref_unref (iobref);
+
+ out:
+ return;
+}
+
+
int
__iobref_add (struct iobref *iobref, struct iobuf *iobuf)
{
diff --git a/libglusterfs/src/iobuf.h b/libglusterfs/src/iobuf.h
index b9c2a380711..5595309e1cd 100644
--- a/libglusterfs/src/iobuf.h
+++ b/libglusterfs/src/iobuf.h
@@ -150,7 +150,7 @@ struct iobref *iobref_ref (struct iobref *iobref);
void iobref_unref (struct iobref *iobref);
int iobref_add (struct iobref *iobref, struct iobuf *iobuf);
int iobref_merge (struct iobref *to, struct iobref *from);
-
+void iobref_clear (struct iobref *iobref);
size_t iobuf_size (struct iobuf *iobuf);
size_t iobref_size (struct iobref *iobref);