On Sun, Jun 08 2025, Pasha Tatashin wrote: > On Thu, Jun 5, 2025 at 12:04 PM Pratyush Yadav <pratyush@xxxxxxxxxx> wrote: >> >> On Thu, May 15 2025, Pasha Tatashin wrote: >> >> > Implements the core logic within luo_files.c to invoke the prepare, >> > reboot, finish, and cancel callbacks for preserved file instances, >> > replacing the previous stub implementations. It also handles >> > the persistence and retrieval of the u64 data payload associated with >> > each file via the LUO FDT. >> > >> > This completes the core mechanism enabling registered filesystem >> > handlers to actively manage file state across the live update >> > transition using the LUO framework. >> > >> > Signed-off-by: Pasha Tatashin <pasha.tatashin@xxxxxxxxxx> >> > --- >> > drivers/misc/liveupdate/luo_files.c | 105 +++++++++++++++++++++++++++- >> > 1 file changed, 103 insertions(+), 2 deletions(-) >> > >> [...] >> > @@ -305,7 +369,29 @@ int luo_do_files_prepare_calls(void) >> > */ >> > int luo_do_files_freeze_calls(void) >> > { >> > - return 0; >> > + unsigned long token; >> > + struct luo_file *h; >> > + int ret; >> > + >> > + xa_for_each(&luo_files_xa_out, token, h) { >> >> Should we also ensure at this point that there are no open handles to >> this file? How else would a file system ensure the file is in quiescent >> state to do its final serialization? > > Do you mean check refcnt here? If so, this is a good idea, but first > we need to implement the lifecycle of liveupdate agent correctectly, > where owner of FD must survive through entering into reboot() with > /dev/liveupdate still open. Yes, by this point we should ensure refcnt == 1. IIUC you plan to implement the lifecycle change in the next revision, so this can be added there as well I suppose. [...] -- Regards, Pratyush Yadav