summaryrefslogtreecommitdiff
path: root/Documentation/btrfs-ioctl.asciidoc
blob: 11bf62b1d06b86b35c6c4cdc4ec9917ad3217d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
btrfs-ioctl(3)
================

NAME
----

btrfs-ioctl - documentation for the ioctl interface to btrfs

DATA STRUCTURES AND DEFINITIONS
-------------------------------

[verse]
struct btrfs_ioctl_vol_args {
	__s64 fd;
	char name[BTRFS_PATH_NAME_MAX + 1];
};

[verse]
struct btrfs_ioctl_vol_args_v2 {
	\__s64 fd;
	\__u64 transid;
	\__u64 flags;
	union {
		struct {
			\__u64 size;
			struct btrfs_qgroup_inherit \__user *qgroup_inherit;
		};
		__u64 unused[4];
	};
	char name[BTRFS_SUBVOL_NAME_MAX + 1];
};

[verse]
BTRFS_SUBVOL_NAME_MAX = 4039
BTRFS_PATH_NAME_MAX = 4087

LIST OF IOCTLS
--------------

 BTRFS_IOC_SUBVOL_CREATE -- (obsolete) create a subvolume
 BTRFS_IOC_SNAP_CREATE
 BTRFS_IOC_DEFRAG
 BTRFS_IOC_RESIZE
 BTRFS_IOC_SCAN_DEV
 BTRFS_IOC_TRANS_START
 BTRFS_IOC_TRANS_END
 BTRFS_IOC_SYNC
 BTRFS_IOC_CLONE
 BTRFS_IOC_ADD_DEV
 BTRFS_IOC_RM_DEV
 BTRFS_IOC_BALANCE
 BTRFS_IOC_CLONE_RANGE
 BTRFS_IOC_SUBVOL_CREATE
 BTRFS_IOC_SNAP_DESTROY
 BTRFS_IOC_DEFRAG_RANGE
 BTRFS_IOC_TREE_SEARCH
 BTRFS_IOC_TREE_SEARCH_V2
 BTRFS_IOC_INO_LOOKUP
 BTRFS_IOC_DEFAULT_SUBVOL
 BTRFS_IOC_SPACE_INFO
 BTRFS_IOC_START_SYNC
 BTRFS_IOC_WAIT_SYNC
 BTRFS_IOC_SNAP_CREATE_V2
 BTRFS_IOC_SUBVOL_CREATE_V2 -- create a subvolume
 BTRFS_IOC_SUBVOL_GETFLAGS
 BTRFS_IOC_SUBVOL_SETFLAGS
 BTRFS_IOC_SCRUB
 BTRFS_IOC_SCRUB_CANCEL
 BTRFS_IOC_SCRUB_PROGRESS
 BTRFS_IOC_DEV_INFO
 BTRFS_IOC_FS_INFO
 BTRFS_IOC_BALANCE_V2
 BTRFS_IOC_BALANCE_CTL
 BTRFS_IOC_BALANCE_PROGRESS
 BTRFS_IOC_INO_PATHS
 BTRFS_IOC_LOGICAL_INO
 BTRFS_IOC_SET_RECEIVED_SUBVOL
 BTRFS_IOC_SEND
 BTRFS_IOC_DEVICES_READY
 BTRFS_IOC_QUOTA_CTL
 BTRFS_IOC_QGROUP_ASSIGN
 BTRFS_IOC_QGROUP_CREATE
 BTRFS_IOC_QGROUP_LIMIT
 BTRFS_IOC_QUOTA_RESCAN
 BTRFS_IOC_QUOTA_RESCAN_STATUS
 BTRFS_IOC_QUOTA_RESCAN_WAIT
 BTRFS_IOC_GET_FSLABEL
 BTRFS_IOC_SET_FSLABEL
 BTRFS_IOC_GET_DEV_STATS
 BTRFS_IOC_DEV_REPLACE
 BTRFS_IOC_FILE_EXTENT_SAME
 BTRFS_IOC_GET_FEATURES
 BTRFS_IOC_SET_FEATURES
 BTRFS_IOC_GET_SUPPORTED_FEATURES

DETAILED DESCRIPTION
--------------------

BTRFS_IOC_SUBVOL_CREATE
~~~~~~~~~~~~~~~~~~~~~~~
NOTE: obsoleted by BTRFS_IOC_SUBVOL_CREATE_V2

_(since: 3.0, obsoleted: 4.0)_ Create a subvolume.

ioctl fd:: file descriptor of the parent directory of the new subvolume
argument:: struct btrfs_ioctl_vol_args
fd:: ignored
name:: name of the subvolume, although the buffer can be almost 4k, the file
size is limited by linux VFS to 255 characters and must not contain a slash
('/')


BTRFS_IOC_SUBVOL_CREATE_V2
~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTE: obsoletes BTRFS_IOC_SUBVOL_CREATE

_(since: 3.6)_ Create a subvolume, qgroup inheritance can be specified.

ioctl fd:: file descriptor of the parent directory of the new subvolume
argument:: struct btrfs_ioctl_vol_args_v2
fd:: ignored
transid:: ignored
flags:: ignored
size:: ...
qgroup_inherit:: ...
name:: name of the subvolume, although the buffer can be almost 4k, the file
size is limited by linux VFS to 255 characters and must not contain a slash
('/')
devid:: ...


AVAILABILITY
------------
*btrfs* is part of btrfs-progs.
Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
further details.

SEE ALSO
--------
`ioctl`(2)