changelog: v2 -> v3 - use get_euid() to check the caller's privilege (and remove 3rd patch) - improve error handling v1 -> v2 - add independent error handling patch (1st patch) - reimplement according to ioctl change - various cleanup ===
This RFC implements user version of "subvolume list/show" using three new ioctls. The ioctl patch to the kernel can be found in the ML titled "[PATCH v3 0/3] btrfs: Add three new unprivileged ioctls to allow normal users to call "sub list/show" etc. 1th patch is independent and improvements of error handling 2nd-4th are some prepartion works. 5th patch is the main part. 6th-7th adds the test for "subvolume list" The main behavior differences between root and normal users are: - "sub list" list the subvolumes which exist under the specified path (including the path itself). The specified path itself is not needed to be a subvolume. Also If the subvolume cannot be opend but the parent directory can be, the information other than name or id would be zeroed out. - snapshot filed of "subvolume show" just lists the snapshots under the specified subvolume. This is a part of RFC I sent last December[1] whose aim is to improve normal users' usability. The remaining works of RFC are: - Allow "sub delete" for empty subvolume - Allow "qgroup show" to check quota limit [1] https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg70991.html Tomohiro Misono (7): btrfs-progs: sub list: Call rb_free_nodes() in error path btrfs-progs: ioctl: Add 3 definitions of new unprivileged ioctl btrfs-progs: sub list: Pass specified path down to btrfs_list_subvols() btrfs-progs: fallback to open without O_NOATIME flag in find_mount_root() btrfs-progs: sub list: Allow normal user to call "subvolume list/show" btrfs-progs: test: Add helper function to check if test user exists btrfs-porgs: test: Add cli-test/009 to check subvolume list for both root and normal user btrfs-list.c | 376 +++++++++++++++++++++++++++-- btrfs-list.h | 7 +- cmds-subvolume.c | 14 +- ioctl.h | 86 +++++++ tests/cli-tests/009-subvolume-list/test.sh | 136 +++++++++++ tests/common | 10 + utils.c | 13 +- 7 files changed, 609 insertions(+), 33 deletions(-) create mode 100755 tests/cli-tests/009-subvolume-list/test.sh -- 2.14.3 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html