Commit 985bd0ac authored by Aaron Jacobs's avatar Aaron Jacobs

Fixed permission errors.

parent 070528d9
...@@ -96,11 +96,17 @@ const RootInodeID InodeID = InodeID(bazilfuse.RootID) ...@@ -96,11 +96,17 @@ const RootInodeID InodeID = InodeID(bazilfuse.RootID)
// Attributes for a file or directory inode. Corresponds to struct inode (cf. // Attributes for a file or directory inode. Corresponds to struct inode (cf.
// http://goo.gl/tvYyQt). // http://goo.gl/tvYyQt).
type InodeAttributes struct { type InodeAttributes struct {
Size uint64 Size uint64
Mode os.FileMode Mode os.FileMode
// Time information
Atime time.Time Atime time.Time
Mtime time.Time Mtime time.Time
Crtime time.Time Crtime time.Time
// Owner information
Uid uint32
Gid uint32
} }
// A generation number for an inode. Irrelevant for file systems that won't be // A generation number for an inode. Irrelevant for file systems that won't be
......
...@@ -22,6 +22,10 @@ import ( ...@@ -22,6 +22,10 @@ import (
type HelloFS struct { type HelloFS struct {
fuseutil.NotImplementedFileSystem fuseutil.NotImplementedFileSystem
Clock timeutil.Clock Clock timeutil.Clock
// Set by Init.
Uid uint32
Gid uint32
} }
var _ fuse.FileSystem = &HelloFS{} var _ fuse.FileSystem = &HelloFS{}
...@@ -48,8 +52,6 @@ var gInodeInfo = map[fuse.InodeID]inodeInfo{ ...@@ -48,8 +52,6 @@ var gInodeInfo = map[fuse.InodeID]inodeInfo{
// root // root
rootInode: inodeInfo{ rootInode: inodeInfo{
attributes: fuse.InodeAttributes{ attributes: fuse.InodeAttributes{
// TODO(jacobsa): Why do we get premission denied errors when this is
// 0500?
Mode: 0500 | os.ModeDir, Mode: 0500 | os.ModeDir,
}, },
dir: true, dir: true,
...@@ -119,6 +121,8 @@ func findChildInode( ...@@ -119,6 +121,8 @@ func findChildInode(
func (fs *HelloFS) patchAttributes( func (fs *HelloFS) patchAttributes(
attr *fuse.InodeAttributes) { attr *fuse.InodeAttributes) {
now := fs.Clock.Now() now := fs.Clock.Now()
attr.Uid = fs.Uid
attr.Gid = fs.Gid
attr.Atime = now attr.Atime = now
attr.Mtime = now attr.Mtime = now
attr.Crtime = now attr.Crtime = now
...@@ -129,6 +133,8 @@ func (fs *HelloFS) Init( ...@@ -129,6 +133,8 @@ func (fs *HelloFS) Init(
req *fuse.InitRequest) ( req *fuse.InitRequest) (
resp *fuse.InitResponse, err error) { resp *fuse.InitResponse, err error) {
resp = &fuse.InitResponse{} resp = &fuse.InitResponse{}
fs.Uid = req.Uid
fs.Gid = req.Gid
return return
} }
......
...@@ -224,5 +224,7 @@ func convertAttributes(inode InodeID, attr InodeAttributes) bazilfuse.Attr { ...@@ -224,5 +224,7 @@ func convertAttributes(inode InodeID, attr InodeAttributes) bazilfuse.Attr {
Atime: attr.Atime, Atime: attr.Atime,
Mtime: attr.Mtime, Mtime: attr.Mtime,
Crtime: attr.Crtime, Crtime: attr.Crtime,
Uid: attr.Uid,
Gid: attr.Gid,
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment