diff --git a/daemon/graphdriver/zfs/zfs.go b/daemon/graphdriver/zfs/zfs.go index 3d4ed8fe4e..ece86cc0ab 100644 --- a/daemon/graphdriver/zfs/zfs.go +++ b/daemon/graphdriver/zfs/zfs.go @@ -38,6 +38,19 @@ func (*Logger) Log(cmd []string) { func Init(base string, opt []string) (graphdriver.Driver, error) { var err error + + if _, err := exec.LookPath("zfs"); err != nil { + log.Debugf("[zfs] zfs command is not available: %v", err) + return nil, graphdriver.ErrPrerequisites + } + + file, err := os.OpenFile("/dev/zfs", os.O_RDWR, 600) + if err != nil { + log.Debugf("[zfs] cannot open /dev/zfs: %v", err) + return nil, graphdriver.ErrPrerequisites + } + defer file.Close() + options, err := parseOptions(opt) if err != nil { return nil, err @@ -53,16 +66,6 @@ func Init(base string, opt []string) (graphdriver.Driver, error) { } } - if _, err := exec.LookPath("zfs"); err != nil { - return nil, fmt.Errorf("zfs command is not available: %v", err) - } - - file, err := os.OpenFile("/dev/zfs", os.O_RDWR, 600) - if err != nil { - return nil, fmt.Errorf("cannot open /dev/zfs: %v", err) - } - defer file.Close() - if options.fsName == "" { options.fsName, err = lookupZfsDataset(rootdir) if err != nil {