-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request moby#48092 from thaJeztah/fsmagic_internal
daemon/graphdriver: split, internalize packages to separate snapshotters and graphdrivers
- Loading branch information
Showing
17 changed files
with
162 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,117 +1,4 @@ | ||
package graphdriver // import "github.com/docker/docker/daemon/graphdriver" | ||
|
||
import ( | ||
"github.com/moby/sys/mountinfo" | ||
"golang.org/x/sys/unix" | ||
) | ||
|
||
const ( | ||
// FsMagicAufs filesystem id for Aufs | ||
FsMagicAufs = FsMagic(0x61756673) | ||
// FsMagicBtrfs filesystem id for Btrfs | ||
FsMagicBtrfs = FsMagic(0x9123683E) | ||
// FsMagicCramfs filesystem id for Cramfs | ||
FsMagicCramfs = FsMagic(0x28cd3d45) | ||
// FsMagicEcryptfs filesystem id for eCryptfs | ||
FsMagicEcryptfs = FsMagic(0xf15f) | ||
// FsMagicExtfs filesystem id for Extfs | ||
FsMagicExtfs = FsMagic(0x0000EF53) | ||
// FsMagicF2fs filesystem id for F2fs | ||
FsMagicF2fs = FsMagic(0xF2F52010) | ||
// FsMagicGPFS filesystem id for GPFS | ||
FsMagicGPFS = FsMagic(0x47504653) | ||
// FsMagicJffs2Fs filesystem if for Jffs2Fs | ||
FsMagicJffs2Fs = FsMagic(0x000072b6) | ||
// FsMagicJfs filesystem id for Jfs | ||
FsMagicJfs = FsMagic(0x3153464a) | ||
// FsMagicNfsFs filesystem id for NfsFs | ||
FsMagicNfsFs = FsMagic(0x00006969) | ||
// FsMagicRAMFs filesystem id for RamFs | ||
FsMagicRAMFs = FsMagic(0x858458f6) | ||
// FsMagicReiserFs filesystem id for ReiserFs | ||
FsMagicReiserFs = FsMagic(0x52654973) | ||
// FsMagicSmbFs filesystem id for SmbFs | ||
FsMagicSmbFs = FsMagic(0x0000517B) | ||
// FsMagicSquashFs filesystem id for SquashFs | ||
FsMagicSquashFs = FsMagic(0x73717368) | ||
// FsMagicTmpFs filesystem id for TmpFs | ||
FsMagicTmpFs = FsMagic(0x01021994) | ||
// FsMagicVxFS filesystem id for VxFs | ||
FsMagicVxFS = FsMagic(0xa501fcf5) | ||
// FsMagicXfs filesystem id for Xfs | ||
FsMagicXfs = FsMagic(0x58465342) | ||
// FsMagicZfs filesystem id for Zfs | ||
FsMagicZfs = FsMagic(0x2fc12fc1) | ||
// FsMagicOverlay filesystem id for overlay | ||
FsMagicOverlay = FsMagic(0x794C7630) | ||
// FsMagicFUSE filesystem id for FUSE | ||
FsMagicFUSE = FsMagic(0x65735546) | ||
) | ||
|
||
var ( | ||
// List of drivers that should be used in an order | ||
priority = "overlay2,fuse-overlayfs,btrfs,zfs,vfs" | ||
|
||
// FsNames maps filesystem id to name of the filesystem. | ||
FsNames = map[FsMagic]string{ | ||
FsMagicAufs: "aufs", | ||
FsMagicBtrfs: "btrfs", | ||
FsMagicCramfs: "cramfs", | ||
FsMagicEcryptfs: "ecryptfs", | ||
FsMagicExtfs: "extfs", | ||
FsMagicF2fs: "f2fs", | ||
FsMagicFUSE: "fuse", | ||
FsMagicGPFS: "gpfs", | ||
FsMagicJffs2Fs: "jffs2", | ||
FsMagicJfs: "jfs", | ||
FsMagicNfsFs: "nfs", | ||
FsMagicOverlay: "overlayfs", | ||
FsMagicRAMFs: "ramfs", | ||
FsMagicReiserFs: "reiserfs", | ||
FsMagicSmbFs: "smb", | ||
FsMagicSquashFs: "squashfs", | ||
FsMagicTmpFs: "tmpfs", | ||
FsMagicUnsupported: "unsupported", | ||
FsMagicVxFS: "vxfs", | ||
FsMagicXfs: "xfs", | ||
FsMagicZfs: "zfs", | ||
} | ||
) | ||
|
||
// GetFSMagic returns the filesystem id given the path. | ||
func GetFSMagic(rootpath string) (FsMagic, error) { | ||
var buf unix.Statfs_t | ||
if err := unix.Statfs(rootpath, &buf); err != nil { | ||
return 0, err | ||
} | ||
return FsMagic(buf.Type), nil | ||
} | ||
|
||
// NewFsChecker returns a checker configured for the provided FsMagic | ||
func NewFsChecker(t FsMagic) Checker { | ||
return &fsChecker{ | ||
t: t, | ||
} | ||
} | ||
|
||
type fsChecker struct { | ||
t FsMagic | ||
} | ||
|
||
func (c *fsChecker) IsMounted(path string) bool { | ||
fsType, _ := GetFSMagic(path) | ||
return fsType == c.t | ||
} | ||
|
||
// NewDefaultChecker returns a check that parses /proc/mountinfo to check | ||
// if the specified path is mounted. | ||
func NewDefaultChecker() Checker { | ||
return &defaultChecker{} | ||
} | ||
|
||
type defaultChecker struct{} | ||
|
||
func (c *defaultChecker) IsMounted(path string) bool { | ||
m, _ := mountinfo.Mounted(path) | ||
return m | ||
} | ||
// List of drivers that should be used in an order | ||
var priority = "overlay2,fuse-overlayfs,btrfs,zfs,vfs" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.