STRUCT LIVEUPDATE_FLB_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct liveupdate_flb_ops(9) β€” the Kernel API Manual, bestie edition

okay so bestie, welcome to struct liveupdate_flb_ops β€” the manual page for the callbacks that keep your global File-Lifecycle-Bound data alive across a live update. this is the whole vibe. let's go πŸ¦‹


✨ NAME ✨

struct liveupdate_flb_ops β€” literally the callbacks for global File-Lifecycle-Bound data. that's it, that's the whole thing, and it's iconic for it πŸ’…


🌸 SYNOPSIS 🌸

struct liveupdate_flb_ops {
    int (*preserve)(struct liveupdate_flb_op_args *argp);
    void (*unpreserve)(struct liveupdate_flb_op_args *argp);
    int (*retrieve)(struct liveupdate_flb_op_args *argp);
    void (*finish)(struct liveupdate_flb_op_args *argp);
    struct module *owner;
 };

like, yes, there's a tiny extra space before the closing brace. we don't fix it. we respect it. copy it exactly, fr fr πŸŽ€


🧚 Members 🧚

  • preserve β€” called when the first file using this FLB gets preserved. your callback has to save its state and hand back a single, self-contained u64 handle by setting the 'argp->data' field and 'argp->obj'. one handle. self-contained. no cap 🫢
  • unpreserve β€” called when the last file using this FLB gets unpreserved (i.e. aborted before reboot). Receives the handle via
  • retrieve β€” called on-demand in the new kernel, the first time a component asks for access to the shared object. it receives the preserved handle via 'argp->data' and must reconstruct the live object, returning it by setting the 'argp->obj' field. this is the glow-up moment ✨
  • finish β€” called in the new kernel when the last file using this FLB is finished. receives the live object via 'argp->obj' for cleanup. say bye bestie πŸ‘‹
  • owner β€” module reference
okay so, real talk: the unpreserve description just says "Receives the handle via" and then… stops 😭 that's exactly how it is in the original, and we are not inventing the rest. if your brain wants the ending, go read the header β€” don't @ me πŸ’€

πŸ‘‘ Description πŸ‘‘

Operations that manage global shared data with file bound lifecycle β€” triggered by the first file that uses it and concluded by the last file that uses it, across all sessions. first one in, last one out, that's the rule 🌈

like… it's giving main character energy for your shared object. one file kicks it off, one file wraps it up, and everything in between is just vibes and lifecycle management πŸ’œ


⭐ SEE ALSO ⭐

  • Kernel file ./include/linux/liveupdate.h struct
  • liveupdate_file_op_args(9)
  • struct liveupdate_file_ops(9)
  • struct liveupdate_file_handler(9)
  • struct liveupdate_flb_op_args(9)
  • struct liveupdate_flb(9)

go read the related pages, bestie, they're all linked and they all ate πŸ”₯

and that's the page!! sign-off time πŸŽ€ this one lives in ./include/linux, and it's dated October 2026 β€” so yeah, we're reading from the future, iykyk πŸ‘‘βœ¨ slay, bye πŸ¦‹πŸ’–

πŸ“¦ where this page comes from