[PATCH v9 0/6] liveupdate: new ioctl, change session inode type, bug fixes

luca.boccassi
2026-04-20T14:17:46Z

A series of patches matured while implementing LUO support in userspace
in systemd.

- reject session names that are either empty strings or too long
- change inode type of session FDs to a new singleton magic number,
so that userspace can immediately identify them without string
parsing in procfs
- add new ioctl to retrieve session name from FD, so that userspace
can query it without string parsing in procfs

All changes come with a follow-up patch add test coverage via the
existing selftest.

v2: apply one fix from bot review about cleanup on error path:
https://sashiko.dev/#/patchset/20260415184536.1155220-1-luca.boccassi%40gmail.com
the other comments are invalid: luo is not a kmod, and the write hooks are not set up
v3: add test case to liveupdate selftest
v4: split test case in separate follow-up patch
v5: add r-b tag, merge series with LIVEUPDATE_SESSION_GET_NAME ioctl
as they both change the same unit test source file, to avoid merge conflicts
add '__u32 reserved' to the UAPI struct
v6: add more test cases as suggested
more verbose commit message
fix docstring
v7: apply suggestion from review bot to stub out setattr ops,
like it was done in 22bdf3d6581a
v8: add new patches to reject session names that are empty or too long
v9: fixes following review comments on LUO_SESSION_MAGIC

Luca Boccassi (6):
liveupdate: reject LIVEUPDATE_IOCTL_CREATE_SESSION with invalid name
length
selftests/liveupdate: add test cases for
LIVEUPDATE_IOCTL_CREATE_SESSION calls with invalid length
liveupdate: add LUO_SESSION_MAGIC magic inode type
selftests/liveupdate: add test case for LUO_SESSION_MAGIC
liveupdate: add LIVEUPDATE_SESSION_GET_NAME ioctl
selftests/liveupdate: add test cases for LIVEUPDATE_SESSION_GET_NAME

include/uapi/linux/liveupdate.h | 21 +++
include/uapi/linux/magic.h | 1 +
kernel/liveupdate/luo_core.c | 10 +-
kernel/liveupdate/luo_internal.h | 2 +
kernel/liveupdate/luo_session.c | 108 ++++++++++++-
.../testing/selftests/liveupdate/liveupdate.c | 153 ++++++++++++++++++
6 files changed, 289 insertions(+), 6 deletions(-)

--
2.47.3