mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
e1c5e9b561
Signed-off-by: Lei Jitang <leijitang@huawei.com>
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
// +build linux
|
|
|
|
package graphdriver
|
|
|
|
import (
|
|
"path/filepath"
|
|
"syscall"
|
|
)
|
|
|
|
const (
|
|
FsMagicAufs = FsMagic(0x61756673)
|
|
FsMagicBtrfs = FsMagic(0x9123683E)
|
|
FsMagicCramfs = FsMagic(0x28cd3d45)
|
|
FsMagicExtfs = FsMagic(0x0000EF53)
|
|
FsMagicF2fs = FsMagic(0xF2F52010)
|
|
FsMagicJffs2Fs = FsMagic(0x000072b6)
|
|
FsMagicJfs = FsMagic(0x3153464a)
|
|
FsMagicNfsFs = FsMagic(0x00006969)
|
|
FsMagicRamFs = FsMagic(0x858458f6)
|
|
FsMagicReiserFs = FsMagic(0x52654973)
|
|
FsMagicSmbFs = FsMagic(0x0000517B)
|
|
FsMagicSquashFs = FsMagic(0x73717368)
|
|
FsMagicTmpFs = FsMagic(0x01021994)
|
|
FsMagicVxFS = FsMagic(0xa501fcf5)
|
|
FsMagicXfs = FsMagic(0x58465342)
|
|
FsMagicZfs = FsMagic(0x2fc12fc1)
|
|
)
|
|
|
|
var (
|
|
// Slice of drivers that should be used in an order
|
|
priority = []string{
|
|
"aufs",
|
|
"btrfs",
|
|
"zfs",
|
|
"devicemapper",
|
|
"overlay",
|
|
"vfs",
|
|
}
|
|
|
|
FsNames = map[FsMagic]string{
|
|
FsMagicAufs: "aufs",
|
|
FsMagicBtrfs: "btrfs",
|
|
FsMagicCramfs: "cramfs",
|
|
FsMagicExtfs: "extfs",
|
|
FsMagicF2fs: "f2fs",
|
|
FsMagicJffs2Fs: "jffs2",
|
|
FsMagicJfs: "jfs",
|
|
FsMagicNfsFs: "nfs",
|
|
FsMagicRamFs: "ramfs",
|
|
FsMagicReiserFs: "reiserfs",
|
|
FsMagicSmbFs: "smb",
|
|
FsMagicSquashFs: "squashfs",
|
|
FsMagicTmpFs: "tmpfs",
|
|
FsMagicUnsupported: "unsupported",
|
|
FsMagicVxFS: "vxfs",
|
|
FsMagicXfs: "xfs",
|
|
FsMagicZfs: "zfs",
|
|
}
|
|
)
|
|
|
|
func GetFSMagic(rootpath string) (FsMagic, error) {
|
|
var buf syscall.Statfs_t
|
|
if err := syscall.Statfs(filepath.Dir(rootpath), &buf); err != nil {
|
|
return 0, err
|
|
}
|
|
return FsMagic(buf.Type), nil
|
|
}
|