]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - blob.c
afs: Introduce flush_and_free_pb().
[paraslash.git] / blob.c
diff --git a/blob.c b/blob.c
index 4f4a034ad2d60c2e67856050671713738459c828..47253b5e08811c7fbb4a2c2aa12e6f368307454c 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -166,9 +166,7 @@ static void com_lsblob_callback(struct osl_table *table,
                para_printf(&lbad.pb, "%s\n", para_strerror(-ret));
        else if (pmd.num_matches == 0 && pmd.patterns.size > 0)
                para_printf(&lbad.pb, "no matches\n");
-       if (lbad.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, lbad.pb.buf, lbad.pb.offset);
-       free(lbad.pb.buf);
+       flush_and_free_pb(&lbad.pb);
 }
 
 static int com_lsblob(callback_function *f, struct command_context *cc)
@@ -297,9 +295,7 @@ static void com_rmblob_callback(struct osl_table *table, int fd,
                para_printf(&rmbd.pb, "removed %d blobs\n", pmd.num_matches);
                afs_event(BLOB_RENAME, NULL, table);
        }
-       if (rmbd.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, rmbd.pb.buf, rmbd.pb.offset);
-       free(rmbd.pb.buf);
+       flush_and_free_pb(&rmbd.pb);
 }
 
 static int com_rmblob(callback_function *f, struct command_context *cc)
@@ -499,9 +495,7 @@ static void com_mvblob_callback(struct osl_table *table, int fd,
        }
        afs_event(BLOB_RENAME, NULL, table);
 out:
-       if (pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, pb.buf, pb.offset);
-       free(pb.buf);
+       flush_and_free_pb(&pb);
 }
 
 static int com_mvblob(callback_function *f, struct command_context *cc)