btrfs-progs: receive: implement the update_extent callback
authorDavid Sterba <dsterba@suse.cz>
Thu, 11 Jun 2015 17:31:01 +0000 (19:31 +0200)
committerDavid Sterba <dsterba@suse.cz>
Fri, 12 Jun 2015 12:39:57 +0000 (14:39 +0200)
The callback for the NO_FILE_DATA send flag is missing and would crash
if such stream is received.

Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-receive.c

index 67e066c..61d7ed8 100644 (file)
@@ -876,6 +876,20 @@ out:
        return ret;
 }
 
+static int process_update_extent(const char *path, u64 offset, u64 len,
+               void *user)
+{
+       if (g_verbose >= 2)
+               fprintf(stderr, "update_extent %s: offset=%llu, len=%llu\n",
+                               path, (unsigned long long)offset,
+                               (unsigned long long)len);
+
+       /*
+        * Sent with BTRFS_SEND_FLAG_NO_FILE_DATA, nothing to do.
+        */
+
+       return 0;
+}
 
 static struct btrfs_send_ops send_ops = {
        .subvol = process_subvol,
@@ -898,6 +912,7 @@ static struct btrfs_send_ops send_ops = {
        .chmod = process_chmod,
        .chown = process_chown,
        .utimes = process_utimes,
+       .update_extent = process_update_extent,
 };
 
 static int do_receive(struct btrfs_receive *r, const char *tomnt,