From 32f1025b22d16872ead5ec2e3650bf76622fae99 Mon Sep 17 00:00:00 2001 From: Jessica Frazelle Date: Sun, 28 Dec 2014 15:08:42 -0800 Subject: [PATCH] Add error when running overlay over btrfs. Docker-DCO-1.1-Signed-off-by: Jessica Frazelle (github: jfrazelle) --- daemon/graphdriver/overlay/overlay.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/daemon/graphdriver/overlay/overlay.go b/daemon/graphdriver/overlay/overlay.go index 68b6b0ed3e..c59d0ea8fd 100644 --- a/daemon/graphdriver/overlay/overlay.go +++ b/daemon/graphdriver/overlay/overlay.go @@ -99,6 +99,21 @@ func Init(home string, options []string) (graphdriver.Driver, error) { return nil, graphdriver.ErrNotSupported } + // check if they are running over btrfs + var buf syscall.Statfs_t + if err := syscall.Statfs(path.Dir(home), &buf); err != nil { + return nil, err + } + + switch graphdriver.FsMagic(buf.Type) { + case graphdriver.FsMagicBtrfs: + log.Error("'overlay' is not supported over btrfs.") + return nil, graphdriver.ErrIncompatibleFS + case graphdriver.FsMagicAufs: + log.Error("'overlay' is not supported over aufs.") + return nil, graphdriver.ErrIncompatibleFS + } + // Create the driver home dir if err := os.MkdirAll(home, 0755); err != nil && !os.IsExist(err) { return nil, err