mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #14863 from brahmaroutu/lint_daemon_graphdriver_aufs
daemon/graphdriver/aufs fix lint errors/warnings
This commit is contained in:
commit
e06df594f5
5 changed files with 17 additions and 8 deletions
|
@ -44,6 +44,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
// ErrAufsNotSupported is returned if aufs is not supported by the host.
|
||||||
ErrAufsNotSupported = fmt.Errorf("AUFS was not found in /proc/filesystems")
|
ErrAufsNotSupported = fmt.Errorf("AUFS was not found in /proc/filesystems")
|
||||||
incompatibleFsMagic = []graphdriver.FsMagic{
|
incompatibleFsMagic = []graphdriver.FsMagic{
|
||||||
graphdriver.FsMagicBtrfs,
|
graphdriver.FsMagicBtrfs,
|
||||||
|
@ -59,13 +60,17 @@ func init() {
|
||||||
graphdriver.Register("aufs", Init)
|
graphdriver.Register("aufs", Init)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Driver contains information about the filesystem mounted.
|
||||||
|
// root of the filesystem
|
||||||
|
// sync.Mutex to protect against concurrent modifications
|
||||||
|
// active maps mount id to the count
|
||||||
type Driver struct {
|
type Driver struct {
|
||||||
root string
|
root string
|
||||||
sync.Mutex // Protects concurrent modification to active
|
sync.Mutex // Protects concurrent modification to active
|
||||||
active map[string]int
|
active map[string]int
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new AUFS driver.
|
// Init returns a new AUFS driver.
|
||||||
// An error is returned if AUFS is not supported.
|
// An error is returned if AUFS is not supported.
|
||||||
func Init(root string, options []string) (graphdriver.Driver, error) {
|
func Init(root string, options []string) (graphdriver.Driver, error) {
|
||||||
|
|
||||||
|
@ -152,6 +157,7 @@ func (*Driver) String() string {
|
||||||
return "aufs"
|
return "aufs"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Status returns current information about the filesystem such as root directory, number of directories mounted, etc.
|
||||||
func (a *Driver) Status() [][2]string {
|
func (a *Driver) Status() [][2]string {
|
||||||
ids, _ := loadIds(path.Join(a.rootPath(), "layers"))
|
ids, _ := loadIds(path.Join(a.rootPath(), "layers"))
|
||||||
return [][2]string{
|
return [][2]string{
|
||||||
|
@ -162,6 +168,7 @@ func (a *Driver) Status() [][2]string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMetadata not implemented
|
||||||
func (a *Driver) GetMetadata(id string) (map[string]string, error) {
|
func (a *Driver) GetMetadata(id string) (map[string]string, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
@ -175,7 +182,7 @@ func (a *Driver) Exists(id string) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Three folders are created for each id
|
// Create three folders for each id
|
||||||
// mnt, layers, and diff
|
// mnt, layers, and diff
|
||||||
func (a *Driver) Create(id, parent string) error {
|
func (a *Driver) Create(id, parent string) error {
|
||||||
if err := a.createDirsFor(id); err != nil {
|
if err := a.createDirsFor(id); err != nil {
|
||||||
|
@ -220,7 +227,7 @@ func (a *Driver) createDirsFor(id string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unmount and remove the dir information
|
// Remove will unmount and remove the given id.
|
||||||
func (a *Driver) Remove(id string) error {
|
func (a *Driver) Remove(id string) error {
|
||||||
// Protect the a.active from concurrent access
|
// Protect the a.active from concurrent access
|
||||||
a.Lock()
|
a.Lock()
|
||||||
|
@ -259,7 +266,7 @@ func (a *Driver) Remove(id string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the rootfs path for the id
|
// Get returns the rootfs path for the id.
|
||||||
// This will mount the dir at it's given path
|
// This will mount the dir at it's given path
|
||||||
func (a *Driver) Get(id, mountLabel string) (string, error) {
|
func (a *Driver) Get(id, mountLabel string) (string, error) {
|
||||||
ids, err := getParentIds(a.rootPath(), id)
|
ids, err := getParentIds(a.rootPath(), id)
|
||||||
|
@ -294,6 +301,7 @@ func (a *Driver) Get(id, mountLabel string) (string, error) {
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Put unmounts and updates list of active mounts.
|
||||||
func (a *Driver) Put(id string) error {
|
func (a *Driver) Put(id string) error {
|
||||||
// Protect the a.active from concurrent access
|
// Protect the a.active from concurrent access
|
||||||
a.Lock()
|
a.Lock()
|
||||||
|
@ -407,7 +415,7 @@ func (a *Driver) mounted(id string) (bool, error) {
|
||||||
return mountpk.Mounted(target)
|
return mountpk.Mounted(target)
|
||||||
}
|
}
|
||||||
|
|
||||||
// During cleanup aufs needs to unmount all mountpoints
|
// Cleanup aufs and unmount all mountpoints
|
||||||
func (a *Driver) Cleanup() error {
|
func (a *Driver) Cleanup() error {
|
||||||
ids, err := loadIds(path.Join(a.rootPath(), "layers"))
|
ids, err := loadIds(path.Join(a.rootPath(), "layers"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -454,7 +462,7 @@ func (a *Driver) aufsMount(ro []string, rw, target, mountLabel string) (err erro
|
||||||
bp += copy(b[bp:], layer)
|
bp += copy(b[bp:], layer)
|
||||||
} else {
|
} else {
|
||||||
data := label.FormatMountLabel(fmt.Sprintf("append%s", layer), mountLabel)
|
data := label.FormatMountLabel(fmt.Sprintf("append%s", layer), mountLabel)
|
||||||
if err = mount("none", target, "aufs", MsRemount, data); err != nil {
|
if err = mount("none", target, "aufs", syscall.MS_REMOUNT, data); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/Sirupsen/logrus"
|
"github.com/Sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Unmount the target specified.
|
||||||
func Unmount(target string) error {
|
func Unmount(target string) error {
|
||||||
if err := exec.Command("auplink", target, "flush").Run(); err != nil {
|
if err := exec.Command("auplink", target, "flush").Run(); err != nil {
|
||||||
logrus.Errorf("Couldn't run auplink before unmount: %s", err)
|
logrus.Errorf("Couldn't run auplink before unmount: %s", err)
|
||||||
|
|
|
@ -2,8 +2,6 @@ package aufs
|
||||||
|
|
||||||
import "syscall"
|
import "syscall"
|
||||||
|
|
||||||
const MsRemount = syscall.MS_REMOUNT
|
|
||||||
|
|
||||||
func mount(source string, target string, fstype string, flags uintptr, data string) error {
|
func mount(source string, target string, fstype string, flags uintptr, data string) error {
|
||||||
return syscall.Mount(source, target, fstype, flags, data)
|
return syscall.Mount(source, target, fstype, flags, data)
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ package aufs
|
||||||
|
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
|
// MsRemount declared to specify a non-linux system mount.
|
||||||
const MsRemount = 0
|
const MsRemount = 0
|
||||||
|
|
||||||
func mount(source string, target string, fstype string, flags uintptr, data string) (err error) {
|
func mount(source string, target string, fstype string, flags uintptr, data string) (err error) {
|
||||||
|
|
|
@ -14,6 +14,7 @@ packages=(
|
||||||
builder/parser/dumper
|
builder/parser/dumper
|
||||||
daemon/events
|
daemon/events
|
||||||
daemon/execdriver/native/template
|
daemon/execdriver/native/template
|
||||||
|
daemon/graphdriver/aufs
|
||||||
daemon/network
|
daemon/network
|
||||||
docker
|
docker
|
||||||
dockerinit
|
dockerinit
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue