diff --git a/pkg/sentry/vfs/dentry.go b/pkg/sentry/vfs/dentry.go index 743654d7d..6dcc39c5c 100644 --- a/pkg/sentry/vfs/dentry.go +++ b/pkg/sentry/vfs/dentry.go @@ -338,9 +338,11 @@ func (vfs *VirtualFilesystem) forgetDeadMountpoint(ctx context.Context, d *Dentr vfs.lockMounts() defer vfs.unlockMounts(ctx) for mnt := range vfs.mountpoints[d] { + // If umounted is true, the mount point has already been decrefed by umount + // so we don't need to release the reference again here. if mnt.umounted { vfs.mounts.seq.BeginWrite() - vfs.delayDecRef(vfs.disconnectLocked(mnt)) + vfs.disconnectLocked(mnt) vfs.delayDecRef(mnt) vfs.mounts.seq.EndWrite() } else {