Description
The libbtrrfsutil API needs to be updated as more applications use it, instead of raw ioctls. There are a few aspects of the update:
Completeness
Add new functions to cover more functionality, easy ones like simple ioctl wrapper or for more complex functionality, basically covering the btrfs
commands (adapted for a library interface).
Naming unification
Currently there is no unified naming, like prefix_object_action that can be found e.g. in util-linux related libraries. So add aliases for existing functions that follow that. For example: btrfs_util_create_subvolume
-> btrfs_util_subvolume_create
. The objects are: fs, subvolume, device, quota, qgroup. Actions are for example: create, delete, set, get. Actions that typically affect the whole filesystem should go under 'fs', but e.g. send can be a object substitute too.
Versioning
The first update will try to establish the naming and verify that it'll work so probably will be just the minor update 1.3. After that a major library may be done (though technically this can be still 1.x due to backward compatibility).
Python bindings
The bindings are should have must have for each new library call. How to do that is briefly described at https://github.com/kdave/btrfs-progs/tree/master/libbtrfsutil#extending-api
Incremental updates
Updates wil be probably provided under the experimental mode protection..