Re: [PATCH v6 06/20] liveupdate: luo_file: implement file systems callbacks
From: Pasha Tatashin <pasha.tatashin@soleen.com>
Date: 2025-11-18 17:58:59
Also in:
linux-doc, linux-fsdevel, linux-mm, lkml
On Tue, Nov 18, 2025 at 12:43 PM Pratyush Yadav [off-list ref] wrote:
On Tue, Nov 18 2025, David Matlack wrote:quoted
On 2025-11-15 06:33 PM, Pasha Tatashin wrote:quoted
This patch implements the core mechanism for managing preserved files throughout the live update lifecycle. It provides the logic to invoke the file handler callbacks (preserve, unpreserve, freeze, unfreeze, retrieve, and finish) at the appropriate stages. During the reboot phase, luo_file_freeze() serializes the final metadata for each file (handler compatible string, token, and data handle) into a memory region preserved by KHO. In the new kernel, luo_file_deserialize() reconstructs the in-memory file list from this data, preparing the session for retrieval. Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com>quoted
+int liveupdate_register_file_handler(struct liveupdate_file_handler *h);Should there be a way to unregister a file handler? If VFIO is built as module then I think it would need to be able to unregister its file handler when the module is unloaded to avoid leaking pointers to its text in LUO.
I actually had full unregister functionality in v4 and earlier, but I dropped it from this series to minimize the footprint and get the core infrastructure landed first. For now, safety is guaranteed because liveupdate_register_file_handler() and liveupdate_register_flb() take a module reference. This effectively pins any module that registers with LUO, meaning those driver modules cannot be unloaded or upgraded dynamically, they can only be updated via Live Update or full reboot. I plan to introduce unregister support in a future improvements to relax this constraint. The design I have in mind is: 1. Unregistration will acquire the singleton lock on /dev/liveupdate to ensure no new sessions can be created during teardown. 2. Verify that there are no incoming/outgoing sessions. 2. File-Handler can only be unregistered if there are no FLBs currently registered against it. Pasha
Good point. We also need when using FLB. You would first do liveupdate_register_file_handler(), and then do liveupdate_register_flb(). If the latter fails, you would want to unregister the file handler too. -- Regards, Pratyush Yadav