Browse Source

let the fuse library manage directory id

otherwise, on mac, during large directory deletion, if some ReaDirAll happens, the lib seems confused about the directories, and some child directories are not deleted.
pull/2013/head
Chris Lu 4 years ago
parent
commit
d1c813c470
  1. 8
      weed/filesys/dir.go

8
weed/filesys/dir.go

@ -28,7 +28,7 @@ type Dir struct {
} }
var _ = fs.Node(&Dir{}) var _ = fs.Node(&Dir{})
var _ = fs.NodeIdentifier(&Dir{})
//var _ = fs.NodeIdentifier(&Dir{})
var _ = fs.NodeCreater(&Dir{}) var _ = fs.NodeCreater(&Dir{})
var _ = fs.NodeMknoder(&Dir{}) var _ = fs.NodeMknoder(&Dir{})
var _ = fs.NodeMkdirer(&Dir{}) var _ = fs.NodeMkdirer(&Dir{})
@ -44,7 +44,7 @@ var _ = fs.NodeRemovexattrer(&Dir{})
var _ = fs.NodeListxattrer(&Dir{}) var _ = fs.NodeListxattrer(&Dir{})
var _ = fs.NodeForgetter(&Dir{}) var _ = fs.NodeForgetter(&Dir{})
func (dir *Dir) Id() uint64 {
func (dir *Dir) xId() uint64 {
return dir.id return dir.id
} }
@ -65,7 +65,7 @@ func (dir *Dir) Attr(ctx context.Context, attr *fuse.Attr) error {
return err return err
} }
attr.Inode = dir.Id()
// attr.Inode = dir.Id()
attr.Mode = os.FileMode(entry.Attributes.FileMode) | os.ModeDir attr.Mode = os.FileMode(entry.Attributes.FileMode) | os.ModeDir
attr.Mtime = time.Unix(entry.Attributes.Mtime, 0) attr.Mtime = time.Unix(entry.Attributes.Mtime, 0)
attr.Crtime = time.Unix(entry.Attributes.Crtime, 0) attr.Crtime = time.Unix(entry.Attributes.Crtime, 0)
@ -92,7 +92,7 @@ func (dir *Dir) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp *f
func (dir *Dir) setRootDirAttributes(attr *fuse.Attr) { func (dir *Dir) setRootDirAttributes(attr *fuse.Attr) {
// attr.Inode = 1 // filer2.FullPath(dir.Path).AsInode() // attr.Inode = 1 // filer2.FullPath(dir.Path).AsInode()
attr.Valid = time.Second attr.Valid = time.Second
attr.Inode = dir.Id()
attr.Inode = 1 // dir.Id()
attr.Uid = dir.wfs.option.MountUid attr.Uid = dir.wfs.option.MountUid
attr.Gid = dir.wfs.option.MountGid attr.Gid = dir.wfs.option.MountGid
attr.Mode = dir.wfs.option.MountMode attr.Mode = dir.wfs.option.MountMode

Loading…
Cancel
Save