[PATCH v4 0/3] liveupdate: prevent double preservation

From: Pasha Tatashin

Date: Thu Mar 26 2026 - 12:47:37 EST


Currently, LUO does not prevent the same file from being managed twice
across different active sessions.

Because LUO preserves files of absolutely different types: memfd, and
upcoming vfiofd [1], iommufd [2], guestmefd (and possible kvmfd/cpufd).
There is no common private data or guarantee on how to prevent that the
same file is not preserved twice beside using inode or some slower and
expensive method like hashtables.

[1] https://lore.kernel.org/all/20260129212510.967611-1-dmatlack@xxxxxxxxxx
[2] https://lore.kernel.org/all/20260203220948.2176157-1-skhawaja@xxxxxxxxxx

Changelog:
v4:
- Added get_id() callback to struct liveupdate_file_ops to allow handlers
to define unique identification for files (e.g. via inode).
- Implemented get_id() for memfd_luo to use the inode pointer.

Pasha Tatashin (3):
liveupdate: prevent double management of files
memfd: implement get_id for memfd_luo
selftests: liveupdate: add test for double preservation

include/linux/liveupdate.h | 2 ++
kernel/liveupdate/luo_file.c | 32 ++++++++++++++++++++++++++++++--
mm/memfd_luo.c | 6 ++++++
tools/testing/selftests/liveupdate/liveupdate.c | 41 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 79 insertions(+), 2 deletions(-)

Pasha Tatashin (3):
liveupdate: prevent double management of files
memfd: implement get_id for memfd_luo
selftests: liveupdate: add test for double preservation

include/linux/liveupdate.h | 2 +
kernel/liveupdate/luo_file.c | 32 ++++++++++++++-
mm/memfd_luo.c | 6 +++
.../testing/selftests/liveupdate/liveupdate.c | 41 +++++++++++++++++++
4 files changed, 79 insertions(+), 2 deletions(-)


base-commit: 0138af2472dfdef0d56fc4697416eaa0ff2589bd
--
2.43.0