Add option to use root as owner of files/dirs

This commit is contained in:
Alexander Neumann
2015-07-26 20:41:29 +02:00
parent bdcb2175c5
commit dde0fd8421
6 changed files with 59 additions and 36 deletions

View File

@@ -24,8 +24,9 @@ type BlobLoader interface {
}
type file struct {
repo BlobLoader
node *restic.Node
repo BlobLoader
node *restic.Node
ownerIsRoot bool
sizes []uint
blobs [][]byte
@@ -39,7 +40,7 @@ var blobPool = sync.Pool{
},
}
func newFile(repo BlobLoader, node *restic.Node) (*file, error) {
func newFile(repo BlobLoader, node *restic.Node, ownerIsRoot bool) (*file, error) {
sizes := make([]uint, len(node.Content))
for i, id := range node.Content {
size, err := repo.LookupBlobSize(id)
@@ -51,10 +52,11 @@ func newFile(repo BlobLoader, node *restic.Node) (*file, error) {
}
return &file{
repo: repo,
node: node,
sizes: sizes,
blobs: make([][]byte, len(node.Content)),
repo: repo,
node: node,
sizes: sizes,
blobs: make([][]byte, len(node.Content)),
ownerIsRoot: ownerIsRoot,
}, nil
}
@@ -62,8 +64,11 @@ func (f *file) Attr(ctx context.Context, a *fuse.Attr) error {
a.Inode = f.node.Inode
a.Mode = f.node.Mode
a.Size = f.node.Size
a.Uid = f.node.UID
a.Gid = f.node.GID
if !f.ownerIsRoot {
a.Uid = f.node.UID
a.Gid = f.node.GID
}
a.Atime = f.node.AccessTime
a.Ctime = f.node.ChangeTime
a.Mtime = f.node.ModTime