aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorMark Fasheh <mfasheh@suse.de>2013-02-04 15:54:57 -0500
committerJosef Bacik <jbacik@fusionio.com>2013-02-20 12:59:39 -0500
commitcb95e7bf7ba481c3d35b238b1cd671b63f54238a (patch)
tree0b2d4906688ca6447a191bcb5f6fe91e0628bda9 /include/uapi
parent2f697dc6a648d3a16f512fe7a53281d55cce1570 (diff)
btrfs: add "no file data" flag to btrfs send ioctl
This patch adds the flag, BTRFS_SEND_FLAG_NO_FILE_DATA to the btrfs send ioctl code. When this flag is set, the btrfs send code will never write file data into the stream (thus also avoiding expensive reads of that data in the first place). BTRFS_SEND_C_UPDATE_EXTENT commands will be sent (instead of BTRFS_SEND_C_WRITE) with an offset, length pair indicating the extent in question. This patch does not affect the operation of BTRFS_SEND_C_CLONE commands - they will continue to be sent when a search finds an appropriate extent to clone from. Signed-off-by: Mark Fasheh <mfasheh@suse.de> Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/btrfs.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
index cffbb582dd90..dd9f1293ab35 100644
--- a/include/uapi/linux/btrfs.h
+++ b/include/uapi/linux/btrfs.h
@@ -407,6 +407,13 @@ struct btrfs_ioctl_received_subvol_args {
407 __u64 reserved[16]; /* in */ 407 __u64 reserved[16]; /* in */
408}; 408};
409 409
410/*
411 * Caller doesn't want file data in the send stream, even if the
412 * search of clone sources doesn't find an extent. UPDATE_EXTENT
413 * commands will be sent instead of WRITE commands.
414 */
415#define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
416
410struct btrfs_ioctl_send_args { 417struct btrfs_ioctl_send_args {
411 __s64 send_fd; /* in */ 418 __s64 send_fd; /* in */
412 __u64 clone_sources_count; /* in */ 419 __u64 clone_sources_count; /* in */