btrfsprogs/send-stream-api-wokaround.patch
2014-09-01 12:13:05 +00:00

56 lines
1.9 KiB
Diff

Index: btrfs-progs-v3.16/cmds-receive.c
===================================================================
--- btrfs-progs-v3.16.orig/cmds-receive.c
+++ btrfs-progs-v3.16/cmds-receive.c
@@ -877,7 +877,7 @@ static int do_receive(struct btrfs_recei
goto out;
while (!end) {
- ret = btrfs_read_and_process_send_stream(r_fd, &send_ops, r,
+ ret = btrfs_read_and_process_send_stream2(r_fd, &send_ops, r,
r->honor_end_cmd,
max_errors);
if (ret < 0)
Index: btrfs-progs-v3.16/send-stream.c
===================================================================
--- btrfs-progs-v3.16.orig/send-stream.c
+++ btrfs-progs-v3.16/send-stream.c
@@ -436,11 +436,21 @@ out:
}
/*
+ * Temporary backward compatibility workaround
+ */
+int btrfs_read_and_process_send_stream(int fd,
+ struct btrfs_send_ops *ops, void *user,
+ int honor_end_cmd)
+{
+ return btrfs_read_and_process_send_stream2(fd, ops, user, honor_end_cmd, 1);
+}
+
+/*
* If max_errors is 0, then don't stop processing the stream if one of the
* callbacks in btrfs_send_ops structure returns an error. If greater than
* zero, stop after max_errors errors happened.
*/
-int btrfs_read_and_process_send_stream(int fd,
+int btrfs_read_and_process_send_stream2(int fd,
struct btrfs_send_ops *ops, void *user,
int honor_end_cmd,
u64 max_errors)
Index: btrfs-progs-v3.16/send-stream.h
===================================================================
--- btrfs-progs-v3.16.orig/send-stream.h
+++ btrfs-progs-v3.16/send-stream.h
@@ -58,6 +58,10 @@ struct btrfs_send_ops {
int btrfs_read_and_process_send_stream(int fd,
struct btrfs_send_ops *ops, void *user,
+ int honor_end_cmd);
+/* Temporary API */
+int btrfs_read_and_process_send_stream2(int fd,
+ struct btrfs_send_ops *ops, void *user,
int honor_end_cmd,
u64 max_errors);