@@ -804,7 +804,7 @@ func savePrivateMFs(ctx context.Context, w io.Writer, mfsToSave map[checkpoint.R
804804// +checklocksexclude:k.extMu
805805// +checklocksexclude:k.runningTasksMu
806806// +checklocksexclude:k.tasks.mu
807- func (k * Kernel ) SaveTo (ctx context.Context , stateFile , pagesMetadata io.WriteCloser , pagesFile stateio.AsyncWriter , appMFExcludeCommittedZeroPages , resume bool , fsOpts * FSSaveOpts ) error {
807+ func (k * Kernel ) SaveTo (ctx context.Context , stateFile , pagesMetadata io.WriteCloser , pagesFile stateio.AsyncWriter , appMFExcludeCommittedZeroPages , resume bool , fsOpts * FSSaveOpts , vfsOpts vfs. PrepareSaveOptions ) error {
808808 // The bypass is part of the saved task state, so it is armed before the
809809 // state is written and covers both resuming after the save and restoring.
810810 k .armSeccompRestartSyscallBypasses ()
@@ -831,14 +831,14 @@ func (k *Kernel) SaveTo(ctx context.Context, stateFile, pagesMetadata io.WriteCl
831831 defer fsCleanup .Clean ()
832832
833833 return k .quiescePausedAnd (ctx , func () error {
834- return k .saveToLocked (ctx , stateFile , pagesMetadata , pagesFile , appMFExcludeCommittedZeroPages , resume , fsOpts , & stateFileCleanup , & pagesCleanup , & fsCleanup )
834+ return k .saveToLocked (ctx , stateFile , pagesMetadata , pagesFile , appMFExcludeCommittedZeroPages , resume , fsOpts , vfsOpts , & stateFileCleanup , & pagesCleanup , & fsCleanup )
835835 })
836836}
837837
838838// saveToLocked saves the kernel state while the kernel is paused and quiesced.
839839//
840840// Preconditions: The kernel must be paused and quiesced.
841- func (k * Kernel ) saveToLocked (ctx context.Context , stateFile , pagesMetadata io.WriteCloser , pagesFile stateio.AsyncWriter , appMFExcludeCommittedZeroPages , resume bool , fsOpts * FSSaveOpts , stateFileCleanup , pagesCleanup , fsCleanup * cleanup.Cleanup ) error {
841+ func (k * Kernel ) saveToLocked (ctx context.Context , stateFile , pagesMetadata io.WriteCloser , pagesFile stateio.AsyncWriter , appMFExcludeCommittedZeroPages , resume bool , fsOpts * FSSaveOpts , vfsOpts vfs. PrepareSaveOptions , stateFileCleanup , pagesCleanup , fsCleanup * cleanup.Cleanup ) error {
842842 saveStart := time .Now ()
843843
844844 // Discard unsavable mappings, such as those for host file descriptors.
@@ -852,7 +852,7 @@ func (k *Kernel) saveToLocked(ctx context.Context, stateFile, pagesMetadata io.W
852852 // Prepare filesystems for saving. This must be done after
853853 // invalidateUnsavableMappings(), since dropping memory mappings may
854854 // affect filesystem state (e.g. page cache reference counts).
855- if err := k .vfs .PrepareSave (vfsCtx ); err != nil {
855+ if err := k .vfs .PrepareSave (vfsCtx , vfsOpts ); err != nil {
856856 return err
857857 }
858858 // Mark all to-be-saved MemoryFiles as savable to inform kernel save below.
0 commit comments