mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Remove --overlayfs-stale-read flag
It defaults to true and setting it to false can cause filesytem corruption. PiperOrigin-RevId: 378518663
This commit is contained in:
committed by
gVisor bot
parent
2e574a9904
commit
1ca981f50f
+4
-6
@@ -763,12 +763,10 @@ func (c *containerMounter) createRootMount(ctx context.Context, conf *config.Con
|
||||
p9FS := mustFindFilesystem("9p")
|
||||
opts := p9MountData(fd, conf.FileAccess, false /* vfs2 */)
|
||||
|
||||
if conf.OverlayfsStaleRead {
|
||||
// We can't check for overlayfs here because sandbox is chroot'ed and gofer
|
||||
// can only send mount options for specs.Mounts (specs.Root is missing
|
||||
// Options field). So assume root is always on top of overlayfs.
|
||||
opts = append(opts, "overlayfs_stale_read")
|
||||
}
|
||||
// We can't check for overlayfs here because sandbox is chroot'ed and gofer
|
||||
// can only send mount options for specs.Mounts (specs.Root is missing
|
||||
// Options field). So assume root is always on top of overlayfs.
|
||||
opts = append(opts, "overlayfs_stale_read")
|
||||
|
||||
rootInode, err := p9FS.Mount(ctx, rootDevice, mf, strings.Join(opts, ","), nil)
|
||||
if err != nil {
|
||||
|
||||
+4
-6
@@ -210,12 +210,10 @@ func (c *containerMounter) createMountNamespaceVFS2(ctx context.Context, conf *c
|
||||
fd := c.fds.remove()
|
||||
data := p9MountData(fd, conf.FileAccess, true /* vfs2 */)
|
||||
|
||||
if conf.OverlayfsStaleRead {
|
||||
// We can't check for overlayfs here because sandbox is chroot'ed and gofer
|
||||
// can only send mount options for specs.Mounts (specs.Root is missing
|
||||
// Options field). So assume root is always on top of overlayfs.
|
||||
data = append(data, "overlayfs_stale_read")
|
||||
}
|
||||
// We can't check for overlayfs here because sandbox is chroot'ed and gofer
|
||||
// can only send mount options for specs.Mounts (specs.Root is missing
|
||||
// Options field). So assume root is always on top of overlayfs.
|
||||
data = append(data, "overlayfs_stale_read")
|
||||
|
||||
log.Infof("Mounting root over 9P, ioFD: %d", fd)
|
||||
opts := &vfs.MountOptions{
|
||||
|
||||
+6
-8
@@ -473,14 +473,12 @@ func adjustMountOptions(conf *config.Config, path string, opts []string) ([]stri
|
||||
rv := make([]string, len(opts))
|
||||
copy(rv, opts)
|
||||
|
||||
if conf.OverlayfsStaleRead {
|
||||
statfs := unix.Statfs_t{}
|
||||
if err := unix.Statfs(path, &statfs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if statfs.Type == unix.OVERLAYFS_SUPER_MAGIC {
|
||||
rv = append(rv, "overlayfs_stale_read")
|
||||
}
|
||||
statfs := unix.Statfs_t{}
|
||||
if err := unix.Statfs(path, &statfs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if statfs.Type == unix.OVERLAYFS_SUPER_MAGIC {
|
||||
rv = append(rv, "overlayfs_stale_read")
|
||||
}
|
||||
return rv, nil
|
||||
}
|
||||
|
||||
@@ -151,12 +151,6 @@ type Config struct {
|
||||
// ReferenceLeakMode sets reference leak check mode
|
||||
ReferenceLeak refs.LeakMode `flag:"ref-leak-mode"`
|
||||
|
||||
// OverlayfsStaleRead instructs the sandbox to assume that the root mount
|
||||
// is on a Linux overlayfs mount, which does not necessarily preserve
|
||||
// coherence between read-only and subsequent writable file descriptors
|
||||
// representing the "same" file.
|
||||
OverlayfsStaleRead bool `flag:"overlayfs-stale-read"`
|
||||
|
||||
// CPUNumFromQuota sets CPU number count to available CPU quota, using
|
||||
// least integer value greater than or equal to quota.
|
||||
//
|
||||
|
||||
@@ -72,7 +72,6 @@ func RegisterFlags() {
|
||||
flag.Var(fileAccessTypePtr(FileAccessShared), "file-access-mounts", "specifies which filesystem validation to use for volumes other than the root mount: shared (default), exclusive.")
|
||||
flag.Bool("overlay", false, "wrap filesystem mounts with writable overlay. All modifications are stored in memory inside the sandbox.")
|
||||
flag.Bool("verity", false, "specifies whether a verity file system will be mounted.")
|
||||
flag.Bool("overlayfs-stale-read", true, "assume root mount is an overlay filesystem")
|
||||
flag.Bool("fsgofer-host-uds", false, "allow the gofer to mount Unix Domain Sockets.")
|
||||
flag.Bool("vfs2", false, "enables VFSv2. This uses the new VFS layer that is faster than the previous one.")
|
||||
flag.Bool("fuse", false, "TEST ONLY; use while FUSE in VFSv2 is landing. This allows the use of the new experimental FUSE filesystem.")
|
||||
|
||||
Reference in New Issue
Block a user