summaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2015-10-10 11:16:50 -0400
committerChris Mason <clm@fb.com>2015-10-26 22:38:28 -0400
commit12907fc79818a62a2478f84f7795afa774bf7f9c (patch)
treec7df6fd783c99feef090a00c38e7268515488430 /include/uapi
parent2849a854224487bc578b73b64422c3cb3ef93ff5 (diff)
btrfs: extend balance filter limit to take minimum and maximum
The 'limit' filter is underdesigned, it should have been a range for [min,max], with some relaxed semantics when one of the bounds is missing. Besides that, using a full u64 for a single value is a waste of bytes. Let's fix both by extending the use of the u64 bytes for the [min,max] range. This can be done in a backward compatible way, the range will be interpreted only if the appropriate flag is set (BTRFS_BALANCE_ARGS_LIMIT_RANGE). Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/btrfs.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
index b6dec05c7196..11f13108b78b 100644
--- a/include/uapi/linux/btrfs.h
+++ b/include/uapi/linux/btrfs.h
@@ -217,7 +217,18 @@ struct btrfs_balance_args {
217 217
218 __u64 flags; 218 __u64 flags;
219 219
220 __u64 limit; /* limit number of processed chunks */ 220 /*
221 * BTRFS_BALANCE_ARGS_LIMIT with value 'limit'
222 * BTRFS_BALANCE_ARGS_LIMIT_RANGE - the extend version can use minimum
223 * and maximum
224 */
225 union {
226 __u64 limit; /* limit number of processed chunks */
227 struct {
228 __u32 limit_min;
229 __u32 limit_max;
230 };
231 };
221 __u64 unused[7]; 232 __u64 unused[7];
222} __attribute__ ((__packed__)); 233} __attribute__ ((__packed__));
223 234