|
@@ -38,6 +38,19 @@ func (*Logger) Log(cmd []string) {
|
|
|
|
|
|
func Init(base string, opt []string) (graphdriver.Driver, error) {
|
|
func Init(base string, opt []string) (graphdriver.Driver, error) {
|
|
var err 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)
|
|
options, err := parseOptions(opt)
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
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 == "" {
|
|
if options.fsName == "" {
|
|
options.fsName, err = lookupZfsDataset(rootdir)
|
|
options.fsName, err = lookupZfsDataset(rootdir)
|
|
if err != nil {
|
|
if err != nil {
|