Signed-off-by: Alexey Guskov <lexag@mail.ru>
| ... | ... |
@@ -116,19 +116,6 @@ func parseOptions(opt []string) (ZfsOptions, error) {
|
| 116 | 116 |
return options, nil |
| 117 | 117 |
} |
| 118 | 118 |
|
| 119 |
-func checkRootdirFs(rootdir string) error {
|
|
| 120 |
- var buf syscall.Statfs_t |
|
| 121 |
- if err := syscall.Statfs(rootdir, &buf); err != nil {
|
|
| 122 |
- return fmt.Errorf("Failed to access '%s': %s", rootdir, err)
|
|
| 123 |
- } |
|
| 124 |
- |
|
| 125 |
- if graphdriver.FsMagic(buf.Type) != graphdriver.FsMagicZfs {
|
|
| 126 |
- log.Debugf("[zfs] no zfs dataset found for rootdir '%s'", rootdir)
|
|
| 127 |
- return graphdriver.ErrPrerequisites |
|
| 128 |
- } |
|
| 129 |
- return nil |
|
| 130 |
-} |
|
| 131 |
- |
|
| 132 | 119 |
func lookupZfsDataset(rootdir string) (string, error) {
|
| 133 | 120 |
var stat syscall.Stat_t |
| 134 | 121 |
if err := syscall.Stat(rootdir, &stat); err != nil {
|
| 135 | 122 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,24 @@ |
| 0 |
+package zfs |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "fmt" |
|
| 4 |
+ "syscall" |
|
| 5 |
+ |
|
| 6 |
+ log "github.com/Sirupsen/logrus" |
|
| 7 |
+ "github.com/docker/docker/daemon/graphdriver" |
|
| 8 |
+) |
|
| 9 |
+ |
|
| 10 |
+func checkRootdirFs(rootdir string) error {
|
|
| 11 |
+ var buf syscall.Statfs_t |
|
| 12 |
+ if err := syscall.Statfs(rootdir, &buf); err != nil {
|
|
| 13 |
+ return fmt.Errorf("Failed to access '%s': %s", rootdir, err)
|
|
| 14 |
+ } |
|
| 15 |
+ |
|
| 16 |
+ // on FreeBSD buf.Fstypename contains ['z', 'f', 's', 0 ... ] |
|
| 17 |
+ if (buf.Fstypename[0] != 122) || (buf.Fstypename[1] != 102) || (buf.Fstypename[2] != 115) || (buf.Fstypename[3] != 0) {
|
|
| 18 |
+ log.Debugf("[zfs] no zfs dataset found for rootdir '%s'", rootdir)
|
|
| 19 |
+ return graphdriver.ErrPrerequisites |
|
| 20 |
+ } |
|
| 21 |
+ |
|
| 22 |
+ return nil |
|
| 23 |
+} |
| 0 | 24 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,23 @@ |
| 0 |
+package zfs |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "fmt" |
|
| 4 |
+ "syscall" |
|
| 5 |
+ |
|
| 6 |
+ log "github.com/Sirupsen/logrus" |
|
| 7 |
+ "github.com/docker/docker/daemon/graphdriver" |
|
| 8 |
+) |
|
| 9 |
+ |
|
| 10 |
+func checkRootdirFs(rootdir string) error {
|
|
| 11 |
+ var buf syscall.Statfs_t |
|
| 12 |
+ if err := syscall.Statfs(rootdir, &buf); err != nil {
|
|
| 13 |
+ return fmt.Errorf("Failed to access '%s': %s", rootdir, err)
|
|
| 14 |
+ } |
|
| 15 |
+ |
|
| 16 |
+ if graphdriver.FsMagic(buf.Type) != graphdriver.FsMagicZfs {
|
|
| 17 |
+ log.Debugf("[zfs] no zfs dataset found for rootdir '%s'", rootdir)
|
|
| 18 |
+ return graphdriver.ErrPrerequisites |
|
| 19 |
+ } |
|
| 20 |
+ |
|
| 21 |
+ return nil |
|
| 22 |
+} |