diff options
author | Arne Jansen <sensille@gmx.net> | 2011-09-14 09:58:21 -0400 |
---|---|---|
committer | Jan Schmidt <list.btrfs@jan-o-sch.net> | 2012-07-12 04:54:40 -0400 |
commit | 6f72c7e20dbaea55f04546de69586c84a3654503 (patch) | |
tree | 4d8e13968765f4a4381a0fe91a4fb157128cbbc5 /fs/btrfs/ioctl.h | |
parent | 5d13a37bd5327220e13329943d1228acfbe5934a (diff) |
Btrfs: add qgroup inheritance
When creating a subvolume or snapshot, it is necessary
to initialize the qgroup account with a copy of some
other (tracking) qgroup. This patch adds parameters
to the ioctls to pass the information from which qgroup
to inherit.
Signed-off-by: Arne Jansen <sensille@gmx.net>
Diffstat (limited to 'fs/btrfs/ioctl.h')
-rw-r--r-- | fs/btrfs/ioctl.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/btrfs/ioctl.h b/fs/btrfs/ioctl.h index 9dd50c4656b3..cdda57f1c240 100644 --- a/fs/btrfs/ioctl.h +++ b/fs/btrfs/ioctl.h | |||
@@ -32,6 +32,7 @@ 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 | ||
@@ -64,7 +65,13 @@ struct btrfs_ioctl_vol_args_v2 { | |||
64 | __s64 fd; | 65 | __s64 fd; |
65 | __u64 transid; | 66 | __u64 transid; |
66 | __u64 flags; | 67 | __u64 flags; |
67 | __u64 unused[4]; | 68 | union { |
69 | struct { | ||
70 | __u64 size; | ||
71 | struct btrfs_qgroup_inherit __user *qgroup_inherit; | ||
72 | }; | ||
73 | __u64 unused[4]; | ||
74 | }; | ||
68 | char name[BTRFS_SUBVOL_NAME_MAX + 1]; | 75 | char name[BTRFS_SUBVOL_NAME_MAX + 1]; |
69 | }; | 76 | }; |
70 | 77 | ||
@@ -382,6 +389,8 @@ struct btrfs_ioctl_qgroup_create_args { | |||
382 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) | 389 | #define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) |
383 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ | 390 | #define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ |
384 | struct btrfs_ioctl_vol_args_v2) | 391 | struct btrfs_ioctl_vol_args_v2) |
392 | #define BTRFS_IOC_SUBVOL_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 24, \ | ||
393 | struct btrfs_ioctl_vol_args_v2) | ||
385 | #define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) | 394 | #define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) |
386 | #define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) | 395 | #define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) |
387 | #define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ | 396 | #define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ |