diff --git a/libsparse/output_file.c b/libsparse/output_file.c
index dc56149..b5ae419 100644
--- a/libsparse/output_file.c
+++ b/libsparse/output_file.c
@@ -541,7 +541,7 @@
 		.write_end_chunk = write_normal_end_chunk,
 };
 
-void close_output_file(struct output_file *out)
+void output_file_close(struct output_file *out)
 {
 	int ret;
 
@@ -638,7 +638,7 @@
 	return &outn->out;
 }
 
-struct output_file *open_output_callback(int (*write)(void *, const void *, int),
+struct output_file *output_file_open_callback(int (*write)(void *, const void *, int),
 		void *priv, unsigned int block_size, int64_t len, int gz, int sparse,
 		int chunks, int crc)
 {
@@ -664,7 +664,7 @@
 	return &outc->out;
 }
 
-struct output_file *open_output_fd(int fd, unsigned int block_size, int64_t len,
+struct output_file *output_file_open_fd(int fd, unsigned int block_size, int64_t len,
 		int gz, int sparse, int chunks, int crc)
 {
 	int ret;
diff --git a/libsparse/output_file.h b/libsparse/output_file.h
index 7a9fa24..474c1fc 100644
--- a/libsparse/output_file.h
+++ b/libsparse/output_file.h
@@ -21,9 +21,9 @@
 
 struct output_file;
 
-struct output_file *open_output_fd(int fd, unsigned int block_size, int64_t len,
+struct output_file *output_file_open_fd(int fd, unsigned int block_size, int64_t len,
 		int gz, int sparse, int chunks, int crc);
-struct output_file *open_output_callback(int (*write)(void *, const void *, int),
+struct output_file *output_file_open_callback(int (*write)(void *, const void *, int),
 		void *priv, unsigned int block_size, int64_t len, int gz, int sparse,
 		int chunks, int crc);
 int write_data_chunk(struct output_file *out, unsigned int len, void *data);
@@ -34,7 +34,7 @@
 int write_fd_chunk(struct output_file *out, unsigned int len,
 		int fd, int64_t offset);
 int write_skip_chunk(struct output_file *out, int64_t len);
-void close_output_file(struct output_file *out);
+void output_file_close(struct output_file *out);
 
 int read_all(int fd, void *buf, size_t len);
 
diff --git a/libsparse/sparse.c b/libsparse/sparse.c
index f04f687..189b4c0 100644
--- a/libsparse/sparse.c
+++ b/libsparse/sparse.c
@@ -156,14 +156,14 @@
 	struct output_file *out;
 
 	chunks = sparse_count_chunks(s);
-	out = open_output_fd(fd, s->block_size, s->len, gz, sparse, chunks, crc);
+	out = output_file_open_fd(fd, s->block_size, s->len, gz, sparse, chunks, crc);
 
 	if (!out)
 		return -ENOMEM;
 
 	ret = write_all_blocks(s, out);
 
-	close_output_file(out);
+	output_file_close(out);
 
 	return ret;
 }
@@ -176,7 +176,7 @@
 	struct output_file *out;
 
 	chunks = sparse_count_chunks(s);
-	out = open_output_callback(write, priv, s->block_size, s->len, false,
+	out = output_file_open_callback(write, priv, s->block_size, s->len, false,
 			sparse, chunks, crc);
 
 	if (!out)
@@ -184,7 +184,7 @@
 
 	ret = write_all_blocks(s, out);
 
-	close_output_file(out);
+	output_file_close(out);
 
 	return ret;
 }
@@ -203,7 +203,7 @@
 	int64_t count = 0;
 	struct output_file *out;
 
-	out = open_output_callback(out_counter_write, &count,
+	out = output_file_open_callback(out_counter_write, &count,
 			s->block_size, s->len, false, sparse, chunks, crc);
 	if (!out) {
 		return -1;
@@ -211,7 +211,7 @@
 
 	ret = write_all_blocks(s, out);
 
-	close_output_file(out);
+	output_file_close(out);
 
 	if (ret < 0) {
 		return -1;
@@ -239,7 +239,7 @@
 	len -= overhead;
 
 	start = backed_block_iter_new(from->backed_block_list);
-	out_counter = open_output_callback(out_counter_write, &count,
+	out_counter = output_file_open_callback(out_counter_write, &count,
 			to->block_size, to->len, false, true, 0, false);
 	if (!out_counter) {
 		return NULL;
@@ -269,7 +269,7 @@
 	backed_block_list_move(from->backed_block_list,
 		to->backed_block_list, start, last_bb);
 
-	close_output_file(out_counter);
+	output_file_close(out_counter);
 
 	return bb;
 }
