|
@@ -474,9 +474,45 @@ struct btrfs_ioctl_clone_range_args {
|
|
|
__u64 dest_offset;
|
|
|
};
|
|
|
|
|
|
-/* flags for the defrag range ioctl */
|
|
|
+/*
|
|
|
+ * flags definition for the defrag range ioctl
|
|
|
+ *
|
|
|
+ * Used by:
|
|
|
+ * struct btrfs_ioctl_defrag_range_args.flags
|
|
|
+ */
|
|
|
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
|
|
|
#define BTRFS_DEFRAG_RANGE_START_IO 2
|
|
|
+struct btrfs_ioctl_defrag_range_args {
|
|
|
+ /* start of the defrag operation */
|
|
|
+ __u64 start;
|
|
|
+
|
|
|
+ /* number of bytes to defrag, use (u64)-1 to say all */
|
|
|
+ __u64 len;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * flags for the operation, which can include turning
|
|
|
+ * on compression for this one defrag
|
|
|
+ */
|
|
|
+ __u64 flags;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * any extent bigger than this will be considered
|
|
|
+ * already defragged. Use 0 to take the kernel default
|
|
|
+ * Use 1 to say every single extent must be rewritten
|
|
|
+ */
|
|
|
+ __u32 extent_thresh;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * which compression method to use if turning on compression
|
|
|
+ * for this defrag operation. If unspecified, zlib will
|
|
|
+ * be used
|
|
|
+ */
|
|
|
+ __u32 compress_type;
|
|
|
+
|
|
|
+ /* spare for later */
|
|
|
+ __u32 unused[4];
|
|
|
+};
|
|
|
+
|
|
|
|
|
|
#define BTRFS_SAME_DATA_DIFFERS 1
|
|
|
/* For extent-same ioctl */
|