@@ -120,19 +120,37 @@ void path_cleanup(struct path_arg *path)
120120}
121121
122122static PyMethodDef btrfsutil_methods [] = {
123+ /* Aliases: sync, fs_sync */
123124 {"sync" , (PyCFunction )filesystem_sync ,
124125 METH_VARARGS | METH_KEYWORDS ,
125126 "sync(path)\n\n"
126127 "Sync a specific Btrfs filesystem.\n\n"
127128 "Arguments:\n"
128129 "path -- string, bytes, path-like object, or open file descriptor" },
130+ {"fs_sync" , (PyCFunction )filesystem_sync ,
131+ METH_VARARGS | METH_KEYWORDS ,
132+ "fs_sync(path)\n\n"
133+ "Sync a specific Btrfs filesystem.\n\n"
134+ "Arguments:\n"
135+ "path -- string, bytes, path-like object, or open file descriptor" },
136+
137+ /* Aliases: start_sync, fs_start_sync */
129138 {"start_sync" , (PyCFunction )start_sync ,
130139 METH_VARARGS | METH_KEYWORDS ,
131140 "start_sync(path) -> int\n\n"
132141 "Start a sync on a specific Btrfs filesystem and return the\n"
133142 "transaction ID.\n\n"
134143 "Arguments:\n"
135144 "path -- string, bytes, path-like object, or open file descriptor" },
145+ {"fs_start_sync" , (PyCFunction )start_sync ,
146+ METH_VARARGS | METH_KEYWORDS ,
147+ "fs_start_sync(path) -> int\n\n"
148+ "Start a sync on a specific Btrfs filesystem and return the\n"
149+ "transaction ID.\n\n"
150+ "Arguments:\n"
151+ "path -- string, bytes, path-like object, or open file descriptor" },
152+
153+ /* Aliases: wait_sync, fs_wait_sync */
136154 {"wait_sync" , (PyCFunction )wait_sync ,
137155 METH_VARARGS | METH_KEYWORDS ,
138156 "wait_sync(path, transid=0)\n\n"
@@ -141,18 +159,44 @@ static PyMethodDef btrfsutil_methods[] = {
141159 "path -- string, bytes, path-like object, or open file descriptor\n"
142160 "transid -- int transaction ID to wait for, or zero for the current\n"
143161 "transaction" },
162+ {"fs_wait_sync" , (PyCFunction )wait_sync ,
163+ METH_VARARGS | METH_KEYWORDS ,
164+ "fs_wait_sync(path, transid=0)\n\n"
165+ "Wait for a transaction to sync.\n"
166+ "Arguments:\n"
167+ "path -- string, bytes, path-like object, or open file descriptor\n"
168+ "transid -- int transaction ID to wait for, or zero for the current\n"
169+ "transaction" },
170+
171+ /* Aliases: is_subvolume, subvolume_is_valid */
144172 {"is_subvolume" , (PyCFunction )is_subvolume ,
145173 METH_VARARGS | METH_KEYWORDS ,
146174 "is_subvolume(path) -> bool\n\n"
147175 "Get whether a file is a subvolume.\n\n"
148176 "Arguments:\n"
149177 "path -- string, bytes, path-like object, or open file descriptor" },
178+ {"subvolume_is_valid" , (PyCFunction )is_subvolume ,
179+ METH_VARARGS | METH_KEYWORDS ,
180+ "subvolume_is_valid(path) -> bool\n\n"
181+ "Get whether a file is a subvolume.\n\n"
182+ "Arguments:\n"
183+ "path -- string, bytes, path-like object, or open file descriptor" },
184+
185+ /* Aliases: subvolume_id, subvolume_get_id */
150186 {"subvolume_id" , (PyCFunction )subvolume_id ,
151187 METH_VARARGS | METH_KEYWORDS ,
152188 "subvolume_id(path) -> int\n\n"
153189 "Get the ID of the subvolume containing a file.\n\n"
154190 "Arguments:\n"
155191 "path -- string, bytes, path-like object, or open file descriptor" },
192+ {"subvolume_get_id" , (PyCFunction )subvolume_id ,
193+ METH_VARARGS | METH_KEYWORDS ,
194+ "subvolume_id(path) -> int\n\n"
195+ "Get the ID of the subvolume containing a file.\n\n"
196+ "Arguments:\n"
197+ "path -- string, bytes, path-like object, or open file descriptor" },
198+
199+ /* Aliases: subvolume_path, subvolume_get_path */
156200 {"subvolume_path" , (PyCFunction )subvolume_path ,
157201 METH_VARARGS | METH_KEYWORDS ,
158202 "subvolume_path(path, id=0) -> int\n\n"
@@ -161,6 +205,16 @@ static PyMethodDef btrfsutil_methods[] = {
161205 "path -- string, bytes, path-like object, or open file descriptor\n"
162206 "id -- if not zero, instead of returning the subvolume path of the\n"
163207 "given path, return the path of the subvolume with this ID" },
208+ {"subvolume_get_path" , (PyCFunction )subvolume_path ,
209+ METH_VARARGS | METH_KEYWORDS ,
210+ "subvolume_get_path(path, id=0) -> int\n\n"
211+ "Get the path of a subvolume relative to the filesystem root.\n\n"
212+ "Arguments:\n"
213+ "path -- string, bytes, path-like object, or open file descriptor\n"
214+ "id -- if not zero, instead of returning the subvolume path of the\n"
215+ "given path, return the path of the subvolume with this ID" },
216+
217+ /* Aliases: subvolume_info, subvolume_get_info */
164218 {"subvolume_info" , (PyCFunction )subvolume_info ,
165219 METH_VARARGS | METH_KEYWORDS ,
166220 "subvolume_info(path, id=0) -> SubvolumeInfo\n\n"
@@ -169,25 +223,60 @@ static PyMethodDef btrfsutil_methods[] = {
169223 "path -- string, bytes, path-like object, or open file descriptor\n"
170224 "id -- if not zero, instead of returning information about the\n"
171225 "given path, return information about the subvolume with this ID" },
226+ {"subvolume_get_info" , (PyCFunction )subvolume_info ,
227+ METH_VARARGS | METH_KEYWORDS ,
228+ "subvolume_get_info(path, id=0) -> SubvolumeInfo\n\n"
229+ "Get information about a subvolume.\n\n"
230+ "Arguments:\n"
231+ "path -- string, bytes, path-like object, or open file descriptor\n"
232+ "id -- if not zero, instead of returning information about the\n"
233+ "given path, return information about the subvolume with this ID" },
234+
235+ /* Aliases get_subvolume_read_only, subvolume_get_read_only */
172236 {"get_subvolume_read_only" , (PyCFunction )get_subvolume_read_only ,
173237 METH_VARARGS | METH_KEYWORDS ,
174238 "get_subvolume_read_only(path) -> bool\n\n"
175239 "Get whether a subvolume is read-only.\n\n"
176240 "Arguments:\n"
177241 "path -- string, bytes, path-like object, or open file descriptor" },
242+ {"subvolume_get_read_only" , (PyCFunction )get_subvolume_read_only ,
243+ METH_VARARGS | METH_KEYWORDS ,
244+ "subvolume_get_read_only(path) -> bool\n\n"
245+ "Get whether a subvolume is read-only.\n\n"
246+ "Arguments:\n"
247+ "path -- string, bytes, path-like object, or open file descriptor" },
248+
249+ /* Aliases set_subvolume_read_only, subvolume_set_read_only */
178250 {"set_subvolume_read_only" , (PyCFunction )set_subvolume_read_only ,
179251 METH_VARARGS | METH_KEYWORDS ,
180252 "set_subvolume_read_only(path, read_only=True)\n\n"
181253 "Set whether a subvolume is read-only.\n\n"
182254 "Arguments:\n"
183255 "path -- string, bytes, path-like object, or open file descriptor\n"
184256 "read_only -- bool flag value" },
257+ {"subvolume_set_read_only" , (PyCFunction )set_subvolume_read_only ,
258+ METH_VARARGS | METH_KEYWORDS ,
259+ "subvolume_set_read_only(path, read_only=True)\n\n"
260+ "Set whether a subvolume is read-only.\n\n"
261+ "Arguments:\n"
262+ "path -- string, bytes, path-like object, or open file descriptor\n"
263+ "read_only -- bool flag value" },
264+
265+ /* Aliases get_default_subvolume, subvolume_get_default */
185266 {"get_default_subvolume" , (PyCFunction )get_default_subvolume ,
186267 METH_VARARGS | METH_KEYWORDS ,
187268 "get_default_subvolume(path) -> int\n\n"
188269 "Get the ID of the default subvolume of a filesystem.\n\n"
189270 "Arguments:\n"
190271 "path -- string, bytes, path-like object, or open file descriptor" },
272+ {"subvolume_get_default" , (PyCFunction )get_default_subvolume ,
273+ METH_VARARGS | METH_KEYWORDS ,
274+ "subvolume_get_default(path) -> int\n\n"
275+ "Get the ID of the default subvolume of a filesystem.\n\n"
276+ "Arguments:\n"
277+ "path -- string, bytes, path-like object, or open file descriptor" },
278+
279+ /* Aliases: set_default_subvolume, subvolume_set_default */
191280 {"set_default_subvolume" , (PyCFunction )set_default_subvolume ,
192281 METH_VARARGS | METH_KEYWORDS ,
193282 "set_default_subvolume(path, id=0)\n\n"
@@ -196,6 +285,16 @@ static PyMethodDef btrfsutil_methods[] = {
196285 "path -- string, bytes, path-like object, or open file descriptor\n"
197286 "id -- if not zero, set the default subvolume to the subvolume with\n"
198287 "this ID instead of the given path" },
288+ {"subvolume_set_default" , (PyCFunction )set_default_subvolume ,
289+ METH_VARARGS | METH_KEYWORDS ,
290+ "subvolume_set_default(path, id=0)\n\n"
291+ "Set the default subvolume of a filesystem.\n\n"
292+ "Arguments:\n"
293+ "path -- string, bytes, path-like object, or open file descriptor\n"
294+ "id -- if not zero, set the default subvolume to the subvolume with\n"
295+ "this ID instead of the given path" },
296+
297+ /* Aliases: create_subvolume, subvolume_create */
199298 {"create_subvolume" , (PyCFunction )create_subvolume ,
200299 METH_VARARGS | METH_KEYWORDS ,
201300 "create_subvolume(path, async_=False, qgroup_inherit=None)\n\n"
@@ -205,6 +304,17 @@ static PyMethodDef btrfsutil_methods[] = {
205304 "async_ -- no longer used\n"
206305 "qgroup_inherit -- optional QgroupInherit object of qgroups to\n"
207306 "inherit from" },
307+ {"subvolume_create" , (PyCFunction )create_subvolume ,
308+ METH_VARARGS | METH_KEYWORDS ,
309+ "subvolume_create(path, async_=False, qgroup_inherit=None)\n\n"
310+ "Create a new subvolume.\n\n"
311+ "Arguments:\n"
312+ "path -- string, bytes, or path-like object\n"
313+ "async_ -- no longer used\n"
314+ "qgroup_inherit -- optional QgroupInherit object of qgroups to\n"
315+ "inherit from" },
316+
317+ /* Aliases: create_snapshot, subvolume_snapshot */
208318 {"create_snapshot" , (PyCFunction )create_snapshot ,
209319 METH_VARARGS | METH_KEYWORDS ,
210320 "create_snapshot(source, path, recursive=False, read_only=False,\n"
@@ -218,6 +328,21 @@ static PyMethodDef btrfsutil_methods[] = {
218328 "async_ -- no longer used\n"
219329 "qgroup_inherit -- optional QgroupInherit object of qgroups to\n"
220330 "inherit from" },
331+ {"subvolume_snapshot" , (PyCFunction )create_snapshot ,
332+ METH_VARARGS | METH_KEYWORDS ,
333+ "subvolume_snapshot(source, path, recursive=False, read_only=False,\n"
334+ " async_=False, qgroup_inherit=None)\n\n"
335+ "Create a new snapshot.\n\n"
336+ "Arguments:\n"
337+ "source -- string, bytes, path-like object, or open file descriptor\n"
338+ "path -- string, bytes, or path-like object\n"
339+ "recursive -- also snapshot child subvolumes\n"
340+ "read_only -- create a read-only snapshot\n"
341+ "async_ -- no longer used\n"
342+ "qgroup_inherit -- optional QgroupInherit object of qgroups to\n"
343+ "inherit from" },
344+
345+ /* Aliases: delete_subvolume, subvolume_delete */
221346 {"delete_subvolume" , (PyCFunction )delete_subvolume ,
222347 METH_VARARGS | METH_KEYWORDS ,
223348 "delete_subvolume(path, recursive=False)\n\n"
@@ -226,13 +351,31 @@ static PyMethodDef btrfsutil_methods[] = {
226351 "path -- string, bytes, or path-like object\n"
227352 "recursive -- if the given subvolume has child subvolumes, delete\n"
228353 "them instead of failing" },
354+ {"subvolume_delete" , (PyCFunction )delete_subvolume ,
355+ METH_VARARGS | METH_KEYWORDS ,
356+ "subvolume_delete(path, recursive=False)\n\n"
357+ "Delete a subvolume or snapshot.\n\n"
358+ "Arguments:\n"
359+ "path -- string, bytes, or path-like object\n"
360+ "recursive -- if the given subvolume has child subvolumes, delete\n"
361+ "them instead of failing" },
362+
363+ /* Aliases: deleted_subvolumes, subvolume_list_deleted */
229364 {"deleted_subvolumes" , (PyCFunction )deleted_subvolumes ,
230365 METH_VARARGS | METH_KEYWORDS ,
231366 "deleted_subvolumes(path)\n\n"
232367 "Get the list of subvolume IDs which have been deleted but not yet\n"
233368 "cleaned up\n\n"
234369 "Arguments:\n"
235370 "path -- string, bytes, path-like object, or open file descriptor" },
371+ {"subvolume_list_deleted" , (PyCFunction )deleted_subvolumes ,
372+ METH_VARARGS | METH_KEYWORDS ,
373+ "subvolumes_list_deleted(path)\n\n"
374+ "Get the list of subvolume IDs which have been deleted but not yet\n"
375+ "cleaned up\n\n"
376+ "Arguments:\n"
377+ "path -- string, bytes, path-like object, or open file descriptor" },
378+
236379 {},
237380};
238381
0 commit comments