09c76fef92795e388b79dfc2292a61ad31f0508a
[platform/upstream/btrfs-progs.git] / btrfs-ioctl.asciidoc
1 btrfs-ioctl(3)
2 ==============
3
4 NAME
5 ----
6
7 btrfs-ioctl - documentation for the ioctl interface to btrfs
8
9 DATA STRUCTURES AND DEFINITIONS
10 -------------------------------
11
12 [verse]
13 struct btrfs_ioctl_vol_args {
14         __s64 fd;
15         char name[BTRFS_PATH_NAME_MAX + 1];
16 };
17
18 [verse]
19 struct btrfs_ioctl_vol_args_v2 {
20         \__s64 fd;
21         \__u64 transid;
22         \__u64 flags;
23         union {
24                 struct {
25                         \__u64 size;
26                         struct btrfs_qgroup_inherit \__user *qgroup_inherit;
27                 };
28                 __u64 unused[4];
29         };
30         char name[BTRFS_SUBVOL_NAME_MAX + 1];
31 };
32
33 [verse]
34 BTRFS_SUBVOL_NAME_MAX = 4039
35 BTRFS_PATH_NAME_MAX = 4087
36
37 LIST OF IOCTLS
38 --------------
39
40  BTRFS_IOC_SUBVOL_CREATE -- (obsolete) create a subvolume
41  BTRFS_IOC_SNAP_CREATE
42  BTRFS_IOC_DEFRAG
43  BTRFS_IOC_RESIZE
44  BTRFS_IOC_SCAN_DEV
45  BTRFS_IOC_TRANS_START
46  BTRFS_IOC_TRANS_END
47  BTRFS_IOC_SYNC
48  BTRFS_IOC_CLONE
49  BTRFS_IOC_ADD_DEV
50  BTRFS_IOC_RM_DEV
51  BTRFS_IOC_BALANCE
52  BTRFS_IOC_CLONE_RANGE
53  BTRFS_IOC_SUBVOL_CREATE
54  BTRFS_IOC_SNAP_DESTROY
55  BTRFS_IOC_DEFRAG_RANGE
56  BTRFS_IOC_TREE_SEARCH
57  BTRFS_IOC_TREE_SEARCH_V2
58  BTRFS_IOC_INO_LOOKUP
59  BTRFS_IOC_DEFAULT_SUBVOL
60  BTRFS_IOC_SPACE_INFO
61  BTRFS_IOC_START_SYNC
62  BTRFS_IOC_WAIT_SYNC
63  BTRFS_IOC_SNAP_CREATE_V2
64  BTRFS_IOC_SUBVOL_CREATE_V2 -- create a subvolume
65  BTRFS_IOC_SUBVOL_GETFLAGS
66  BTRFS_IOC_SUBVOL_SETFLAGS
67  BTRFS_IOC_SCRUB
68  BTRFS_IOC_SCRUB_CANCEL
69  BTRFS_IOC_SCRUB_PROGRESS
70  BTRFS_IOC_DEV_INFO
71  BTRFS_IOC_FS_INFO
72  BTRFS_IOC_BALANCE_V2
73  BTRFS_IOC_BALANCE_CTL
74  BTRFS_IOC_BALANCE_PROGRESS
75  BTRFS_IOC_INO_PATHS
76  BTRFS_IOC_LOGICAL_INO
77  BTRFS_IOC_SET_RECEIVED_SUBVOL
78  BTRFS_IOC_SEND
79  BTRFS_IOC_DEVICES_READY
80  BTRFS_IOC_QUOTA_CTL
81  BTRFS_IOC_QGROUP_ASSIGN
82  BTRFS_IOC_QGROUP_CREATE
83  BTRFS_IOC_QGROUP_LIMIT
84  BTRFS_IOC_QUOTA_RESCAN
85  BTRFS_IOC_QUOTA_RESCAN_STATUS
86  BTRFS_IOC_QUOTA_RESCAN_WAIT
87  BTRFS_IOC_GET_FSLABEL
88  BTRFS_IOC_SET_FSLABEL
89  BTRFS_IOC_GET_DEV_STATS
90  BTRFS_IOC_DEV_REPLACE
91  BTRFS_IOC_FILE_EXTENT_SAME
92  BTRFS_IOC_GET_FEATURES
93  BTRFS_IOC_SET_FEATURES
94  BTRFS_IOC_GET_SUPPORTED_FEATURES
95
96 DETAILED DESCRIPTION
97 --------------------
98
99 BTRFS_IOC_SUBVOL_CREATE
100 ~~~~~~~~~~~~~~~~~~~~~~~
101 NOTE: obsoleted by BTRFS_IOC_SUBVOL_CREATE_V2
102
103 _(since: 3.0, obsoleted: 4.0)_ Create a subvolume.
104
105 ioctl fd:: file descriptor of the parent directory of the new subvolume
106 argument:: struct btrfs_ioctl_vol_args
107 fd:: ignored
108 name:: name of the subvolume, although the buffer can be almost 4k, the file
109 size is limited by linux VFS to 255 characters and must not contain a slash
110 ('/')
111
112
113 BTRFS_IOC_SUBVOL_CREATE_V2
114 ~~~~~~~~~~~~~~~~~~~~~~~~~~
115 NOTE: obsoletes BTRFS_IOC_SUBVOL_CREATE
116
117 _(since: 3.6)_ Create a subvolume, qgroup inheritance can be specified.
118
119 ioctl fd:: file descriptor of the parent directory of the new subvolume
120 argument:: struct btrfs_ioctl_vol_args_v2
121 fd:: ignored
122 transid:: ignored
123 flags:: ignored
124 size:: ...
125 qgroup_inherit:: ...
126 name:: name of the subvolume, although the buffer can be almost 4k, the file
127 size is limited by linux VFS to 255 characters and must not contain a slash
128 ('/')
129 devid:: ...
130
131
132 AVAILABILITY
133 ------------
134 *btrfs* is part of btrfs-progs.
135 Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for
136 further details.
137
138 SEE ALSO
139 --------
140 `ioctl`(2)