forked from Elara6331/itd
Handle more errors
This commit is contained in:
@@ -39,11 +39,16 @@ type ITNode struct {
|
||||
var myfs *blefs.FS = nil
|
||||
var inodemap map[string]uint64 = nil
|
||||
|
||||
func BuildRootNode(dev *infinitime.Device) *ITNode {
|
||||
func BuildRootNode(dev *infinitime.Device) (*ITNode, error) {
|
||||
var err error
|
||||
inodemap = make(map[string]uint64)
|
||||
myfs, _ = dev.FS()
|
||||
myfs, err = dev.FS()
|
||||
if err != nil {
|
||||
log.Error("FUSE failed to get filesystem").Err(err).Send()
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &ITNode{kind: 0}
|
||||
return &ITNode{kind: 0}, nil
|
||||
}
|
||||
|
||||
var properties = make([]ITProperty, 6)
|
||||
@@ -118,12 +123,21 @@ func (n *ITNode) Readdir(ctx context.Context) (fs.DirStream, syscall.Errno) {
|
||||
|
||||
case 2:
|
||||
// on device
|
||||
files, _ := myfs.ReadDir(n.path)
|
||||
files, err := myfs.ReadDir(n.path)
|
||||
if err != nil {
|
||||
log.Error("ReadDir failed").Str("path", n.path).Err(err).Send()
|
||||
return nil, syscall.ENOENT
|
||||
}
|
||||
|
||||
log.Info("readdir").Str("path", n.path).Int("objects", len(files)).Send()
|
||||
r := make([]fuse.DirEntry, len(files))
|
||||
n.lst = make([]DirEntry, len(files))
|
||||
for ind, entry := range files {
|
||||
info, _ := entry.Info()
|
||||
info, err := entry.Info()
|
||||
if err != nil {
|
||||
log.Error("Info failed").Str("path", n.path).Err(err).Send()
|
||||
return nil, syscall.ENOENT
|
||||
}
|
||||
name := info.Name()
|
||||
|
||||
file := DirEntry{
|
||||
|
||||
Reference in New Issue
Block a user