From: Omar Sandoval <osan...@fb.com> Hi,
This series contains my backlog of libbtrfsutil changes which I've been collecting over the past few weeks. Patches 1-4 are fixes. Patches 5-6 add functionality to the unit tests which is needed for patches 7-8. Patches 7-8 add support for the unprivileged ioctls added in Linux 4.18; more on those below. Patch 9 bumps the library version. Patch 10 adds documentation for the available API along with examples. Patches 7-8 are based on Misono Tomohiro's previous patch series [1], with a few important changes. - Both subvolume_info() and create_subvolume_iterator() now have unit tests for the unprivileged case. - Both no longer explicitly check that top == 0 in the unprivileged case, since that will already fail with a clear permission error. - Unprivileged iteration is much simpler: it uses openat() instead of fchdir() and is based more closely on the original tree search variant. This fixes a bug in post-order iteration in Misono's version. - Unprivileged iteration does _not_ support passing in a non-subvolume path; if this behavior is desired, I'd like it to be a separate change with an explicit flag. Please take a look. Thanks! 1: https://www.spinics.net/lists/linux-btrfs/msg79285.html Omar Sandoval (10): libbtrfsutil: use top=0 as default for SubvolumeIterator() libbtrfsutil: change async parameters to async_ in Python bindings libbtrfsutil: document qgroup_inherit parameter in Python bindings libbtrfsutil: use SubvolumeIterator as context manager in tests libbtrfsutil: add test helpers for dropping privileges libbtrfsutil: allow tests to create multiple Btrfs instances libbtrfsutil: relax the privileges of subvolume_info() libbtrfsutil: relax the privileges of subvolume iterator libbtrfsutil: bump version to 1.1.0 libbtrfsutil: document API in README libbtrfsutil/README.md | 422 +++++++++++++++++++- libbtrfsutil/btrfsutil.h | 21 +- libbtrfsutil/errors.c | 8 + libbtrfsutil/python/module.c | 17 +- libbtrfsutil/python/subvolume.c | 6 +- libbtrfsutil/python/tests/__init__.py | 66 ++- libbtrfsutil/python/tests/test_subvolume.py | 215 +++++++--- libbtrfsutil/subvolume.c | 407 ++++++++++++++++--- 8 files changed, 1029 insertions(+), 133 deletions(-) -- 2.19.1