diff options
author | Chris Mason <chris.mason@fusionio.com> | 2012-07-25 16:11:38 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2012-07-25 16:11:38 -0400 |
commit | b478b2baa37ac99fc04a30809c780dd5dfd43595 (patch) | |
tree | bed7af1466e5b1e0b0501eba18f77c804a864d7d /fs/btrfs/ioctl.h | |
parent | 67c9684f48ea9cbc5e9b8a1feb3151800e9dcc22 (diff) | |
parent | 6f72c7e20dbaea55f04546de69586c84a3654503 (diff) |
Merge branch 'qgroup' of git://git.jan-o-sch.net/btrfs-unstable into for-linus
Conflicts:
fs/btrfs/ioctl.c
fs/btrfs/ioctl.h
fs/btrfs/transaction.c
fs/btrfs/transaction.h
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/ioctl.h')
-rw-r--r-- | fs/btrfs/ioctl.h | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/fs/btrfs/ioctl.h b/fs/btrfs/ioctl.h index 4e3e5d342a2b..3f9701d571ea 100644 --- a/fs/btrfs/ioctl.h +++ b/fs/btrfs/ioctl.h | |||
@@ -32,15 +32,46 @@ struct btrfs_ioctl_vol_args { | |||
32 | 32 | ||
33 | #define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) | 33 | #define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) |
34 | #define BTRFS_SUBVOL_RDONLY (1ULL << 1) | 34 | #define BTRFS_SUBVOL_RDONLY (1ULL << 1) |
35 | #define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) | ||
35 | #define BTRFS_FSID_SIZE 16 | 36 | #define BTRFS_FSID_SIZE 16 |
36 | #define BTRFS_UUID_SIZE 16 | 37 | #define BTRFS_UUID_SIZE 16 |
37 | 38 | ||
39 | #define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0) | ||
40 | |||
41 | struct btrfs_qgroup_limit { | ||
42 | __u64 flags; | ||
43 | __u64 max_rfer; | ||
44 | __u64 max_excl; | ||
45 | __u64 rsv_rfer; | ||
46 | __u64 rsv_excl; | ||
47 | }; | ||
48 | |||
49 | struct btrfs_qgroup_inherit { | ||
50 | __u64 flags; | ||
51 | __u64 num_qgroups; | ||
52 | __u64 num_ref_copies; | ||
53 | __u64 num_excl_copies; | ||
54 | struct btrfs_qgroup_limit lim; | ||
55 | __u64 qgroups[0]; | ||
56 | }; | ||
57 | |||
58 | struct btrfs_ioctl_qgroup_limit_args { | ||
59 | __u64 qgroupid; | ||
60 | struct btrfs_qgroup_limit lim; | ||
61 | }; | ||
62 | |||
38 | #define BTRFS_SUBVOL_NAME_MAX 4039 | 63 | #define BTRFS_SUBVOL_NAME_MAX 4039 |
39 | struct btrfs_ioctl_vol_args_v2 { | 64 | struct btrfs_ioctl_vol_args_v2 { |
40 | __s64 fd; | 65 | __s64 fd; |
41 | __u64 transid; | 66 | __u64 transid; |
42 | __u64 flags; | 67 | __u64 flags; |
43 | __u64 unused[4]; | 68 | union { |
69 | struct { | ||
70 | __u64 size; | ||
71 | struct btrfs_qgroup_inherit __user *qgroup_inherit; | ||
72 | }; | ||
73 | __u64 unused[4]; | ||
74 | }; | ||
44 | char name[BTRFS_SUBVOL_NAME_MAX + 1]; | 75 | char name[BTRFS_SUBVOL_NAME_MAX + 1]; |
45 | }; | 76 | }; |
46 | 77 | ||
@@ -299,6 +330,25 @@ struct btrfs_ioctl_get_dev_stats { | |||
299 | __u64 unused[128 - 2 - BTRFS_DEV_STAT_VALUES_MAX]; /* pad to 1k */ | 330 | __u64 unused[128 - 2 - BTRFS_DEV_STAT_VALUES_MAX]; /* pad to 1k */ |
300 | }; | 331 | }; |
301 | 332 | ||
333 | #define BTRFS_QUOTA_CTL_ENABLE 1 | ||
334 | #define BTRFS_QUOTA_CTL_DISABLE 2 | ||
335 | #define BTRFS_QUOTA_CTL_RESCAN 3 | ||
336 | struct btrfs_ioctl_quota_ctl_args { | ||
337 | __u64 cmd; | ||
338 | __u64 status; | ||
339 | }; | ||
340 | |||
341 | struct btrfs_ioctl_qgroup_assign_args { | ||
342 | __u64 assign; | ||
343 | __u64 src; | ||
344 | __u64 dst; | ||
345 | }; | ||
346 | |||
347 | struct btrfs_ioctl_qgroup_create_args { | ||
348 | __u64 create; | ||
349 | __u64 qgroupid; | ||
350 | }; | ||
351 | |||
302 | #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ | 352 | #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ |
303 | struct btrfs_ioctl_vol_args) | 353 | struct btrfs_ioctl_vol_args) |
304 | #define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, \ | 354 | #define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, \ |
@@ -343,6 +393,8 @@ struct btrfs_ioctl_get_dev_stats { | |||
343 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) | 393 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) |
344 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ | 394 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ |
345 | struct btrfs_ioctl_vol_args_v2) | 395 | struct btrfs_ioctl_vol_args_v2) |
396 | #define BTRFS_IOC_SUBVOL_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 24, \ | ||
397 | struct btrfs_ioctl_vol_args_v2) | ||
346 | #define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) | 398 | #define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) |
347 | #define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) | 399 | #define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) |
348 | #define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ | 400 | #define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ |
@@ -365,6 +417,14 @@ struct btrfs_ioctl_get_dev_stats { | |||
365 | struct btrfs_ioctl_ino_path_args) | 417 | struct btrfs_ioctl_ino_path_args) |
366 | #define BTRFS_IOC_DEVICES_READY _IOR(BTRFS_IOCTL_MAGIC, 39, \ | 418 | #define BTRFS_IOC_DEVICES_READY _IOR(BTRFS_IOCTL_MAGIC, 39, \ |
367 | struct btrfs_ioctl_vol_args) | 419 | struct btrfs_ioctl_vol_args) |
420 | #define BTRFS_IOC_QUOTA_CTL _IOWR(BTRFS_IOCTL_MAGIC, 40, \ | ||
421 | struct btrfs_ioctl_quota_ctl_args) | ||
422 | #define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \ | ||
423 | struct btrfs_ioctl_qgroup_assign_args) | ||
424 | #define BTRFS_IOC_QGROUP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 42, \ | ||
425 | struct btrfs_ioctl_qgroup_create_args) | ||
426 | #define BTRFS_IOC_QGROUP_LIMIT _IOR(BTRFS_IOCTL_MAGIC, 43, \ | ||
427 | struct btrfs_ioctl_qgroup_limit_args) | ||
368 | #define BTRFS_IOC_GET_DEV_STATS _IOWR(BTRFS_IOCTL_MAGIC, 52, \ | 428 | #define BTRFS_IOC_GET_DEV_STATS _IOWR(BTRFS_IOCTL_MAGIC, 52, \ |
369 | struct btrfs_ioctl_get_dev_stats) | 429 | struct btrfs_ioctl_get_dev_stats) |
370 | #endif | 430 | #endif |