On 32-bit userspace running against a 64-bit kernel BTRFS_IOC_GET_SUBVOL_INFO returns -ENOTTY: struct btrfs_ioctl_get_subvol_info_args embeds four btrfs_ioctl_timespec values, and that timespec struct (__u64 sec; __u32 nsec) packs to 12 bytes on i386 but 16 on x86_64 due to differing __u64 alignment. sizeof(struct) is part of the ioctl cmd number via _IOR(), so the cmd emitted by 32-bit userspace doesn't match the case label compiled by the 64-bit kernel and the switch falls through to -ENOTTY. btrfs already handles this exact class of bug for BTRFS_IOC_SET_RECEIVED_SUBVOL via a btrfs_ioctl_timespec_32 struct plus a _32 cmd alias in fs/btrfs/ioctl.c, but GET_SUBVOL_INFO (added in 2018, four years after that fix) didn't get the same treatment. Until a kernel patch lands the test can't exercise the ioctl on 32-bit, so convert TEST(info) to TEST_RET(info) and return EXIT_TEST_SKIP with a clear message when -ENOTTY comes back. The other tests in the file use ioctls that already have working compat paths and remain unaffected.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
