56 lines
1.9 KiB
Diff
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);
|
||
|
|