|
@@ -136,7 +136,7 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
// Create the driver home dir
|
|
// Create the driver home dir
|
|
- if err := idtools.MkdirAllAs(home, 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
|
|
|
|
|
+ if err := idtools.MkdirAllAndChown(home, 0700, idtools.IDPair{rootUID, rootGID}); err != nil && !os.IsExist(err) {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
@@ -255,10 +255,12 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAllAs(path.Dir(dir), 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ root := idtools.IDPair{UID: rootUID, GID: rootGID}
|
|
|
|
+
|
|
|
|
+ if err := idtools.MkdirAllAndChown(path.Dir(dir), 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAs(dir, 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(dir, 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
@@ -271,7 +273,7 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr
|
|
|
|
|
|
// Toplevel images are just a "root" dir
|
|
// Toplevel images are just a "root" dir
|
|
if parent == "" {
|
|
if parent == "" {
|
|
- return idtools.MkdirAndChown(path.Join(dir, "root"), 0755, idtools.IDPair{rootUID, rootGID})
|
|
|
|
|
|
+ return idtools.MkdirAndChown(path.Join(dir, "root"), 0755, root)
|
|
}
|
|
}
|
|
|
|
|
|
parentDir := d.dir(parent)
|
|
parentDir := d.dir(parent)
|
|
@@ -285,13 +287,13 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr
|
|
parentRoot := path.Join(parentDir, "root")
|
|
parentRoot := path.Join(parentDir, "root")
|
|
|
|
|
|
if s, err := os.Lstat(parentRoot); err == nil {
|
|
if s, err := os.Lstat(parentRoot); err == nil {
|
|
- if err := idtools.MkdirAs(path.Join(dir, "upper"), s.Mode(), rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(path.Join(dir, "upper"), s.Mode(), root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAs(path.Join(dir, "work"), 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(path.Join(dir, "work"), 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAs(path.Join(dir, "merged"), 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(path.Join(dir, "merged"), 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
if err := ioutil.WriteFile(path.Join(dir, "lower-id"), []byte(parent), 0666); err != nil {
|
|
if err := ioutil.WriteFile(path.Join(dir, "lower-id"), []byte(parent), 0666); err != nil {
|
|
@@ -318,13 +320,13 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr
|
|
}
|
|
}
|
|
|
|
|
|
upperDir := path.Join(dir, "upper")
|
|
upperDir := path.Join(dir, "upper")
|
|
- if err := idtools.MkdirAs(upperDir, s.Mode(), rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(upperDir, s.Mode(), root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAs(path.Join(dir, "work"), 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(path.Join(dir, "work"), 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- if err := idtools.MkdirAs(path.Join(dir, "merged"), 0700, rootUID, rootGID); err != nil {
|
|
|
|
|
|
+ if err := idtools.MkdirAndChown(path.Join(dir, "merged"), 0700, root); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|