On Sat, Jun 13, 2026 at 01:25:20AM +0000, Samiullah Khawaja wrote: > From: Pasha Tatashin <[email protected]> > > Live update orchestrator file handlers depend on the preservation of > other files. To make sure that the dependency is preserved, the file > handlers needs to fetch the preservation token of the preserved > dependency. Similarly during restore, a file handler wants to fetch the > restored file of the dependency. > > Add APIs that allows fetching token of dependency during preservation, > and fetching the restored file dependency during restore. > > Signed-off-by: Pasha Tatashin <[email protected]> > Signed-off-by: Samiullah Khawaja <[email protected]> > --- > include/linux/liveupdate.h | 21 ++++++++++ > kernel/liveupdate/luo_file.c | 69 ++++++++++++++++++++++++++++++++ > kernel/liveupdate/luo_internal.h | 17 ++++++++ > 3 files changed, 107 insertions(+) > [...] > +EXPORT_SYMBOL_GPL(liveupdate_get_token_outgoing); > + > +/** > + * liveupdate_get_file_incoming - Retrieves a preserved file for in-kernel > use. > + * @s: The incoming liveupdate session (restored from the previous > kernel). > + * @token: The unique token identifying the file to retrieve. > + * @filep: On success, this will be populated with a pointer to the > retrieved > + * 'struct file'. > + * > + * Provides a kernel-internal API for other subsystems to retrieve their > + * preserved files after a live update. This function is a simple wrapper > + * around luo_retrieve_file(), allowing callers to find a file by its token. > + * > + * The caller receives a new reference to the file and must call fput() when > it > + * is no longer needed. The file's lifetime is managed by LUO and any > userspace > + * file descriptors. > + * > + * Context: It must be called with session mutex acquired of a restored > session. > + * Return: 0 on success. Returns -ENOENT if no file with the matching token > is > + * found, or any other negative errno on failure. > + */ > +int liveupdate_get_file_incoming(struct liveupdate_session *s, u64 token, > + struct file **filep) > +{ > + return luo_retrieve_file(luo_file_set_from_session_locked(s), > + token, filep); > +} > +EXPORT_SYMBOL_GPL(liveupdate_get_file_incoming);
Thanks for modifying the comment (as discussed in [1]). This looks good now, along with the EXPORT_SYMBOL_GPL. Reviewed-by: Pranjal Shrivastava <[email protected]> Thanks, Praan [1] https://lore.kernel.org/all/[email protected]/
