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/[email protected] [2] https://lore.kernel.org/all/[email protected] 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

