Currently, LUO does not prevent the same file from being preserved or managed by multiple active sessions simultaneously. This can lead to conflicts and inconsistent state.
This series introduces a mechanism to prevent double management by: 1. Adding an I_LUO_MANAGED flag to the inode's i_state. 2. Updating the LUO core to set/check this flag during preservation and restoration. 3. Adding a selftest to verify that double preservation is correctly prevented with -EBUSY. Background: 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] v1: - Rename I_LUO_PRESERVED to I_LUO_MANAGED (Pratyush Yadav) - Set flag in luo_retrieve_file() and clear in luo_file_finish() (Pratyush Yadav) - Added trailing comma to enum (Jan Kara) - Added selftests. RFC: https://lore.kernel.org/all/[email protected] Pasha Tatashin (2): liveupdate: prevent double management of files selftests: liveupdate: add test for double preservation include/linux/fs.h | 5 ++- kernel/liveupdate/luo_file.c | 27 ++++++++++-- .../testing/selftests/liveupdate/liveupdate.c | 41 +++++++++++++++++++ 3 files changed, 69 insertions(+), 4 deletions(-) -- 2.43.0

