Added FUSE support #55
@ -126,8 +126,7 @@ func (n *ITNode) Readdir(ctx context.Context) (fs.DirStream, syscall.Errno) {
|
||||
files, err := myfs.ReadDir(n.path)
|
||||
if err != nil {
|
||||
log.Error("FUSE ReadDir failed").Str("path", n.path).Err(err).Send()
|
||||
// TODO we probably should figure out why it failed
|
||||
return nil, syscall.ENOENT
|
||||
return nil, syscallErr(err)
|
||||
}
|
||||
|
||||
log.Debug("FUSE ReadDir succeeded").Str("path", n.path).Int("objects", len(files)).Send()
|
||||
@ -137,7 +136,7 @@ func (n *ITNode) Readdir(ctx context.Context) (fs.DirStream, syscall.Errno) {
|
||||
info, err := entry.Info()
|
||||
if err != nil {
|
||||
log.Error("FUSE Info failed").Str("path", n.path).Err(err).Send()
|
||||
return nil, syscall.ENOENT
|
||||
return nil, syscallErr(err)
|
||||
}
|
||||
name := info.Name()
|
||||
|
||||
@ -307,7 +306,7 @@ func (fh *bytesFileWriteHandle) Flush(ctx context.Context) (errno syscall.Errno)
|
||||
fp, err := myfs.Create(fh.path, uint32(len(fh.content)))
|
||||
if err != nil {
|
||||
log.Error("FUSE Flush failed: create").Str("path", fh.path).Err(err).Send()
|
||||
return syscall.EROFS
|
||||
return syscallErr(err)
|
||||
}
|
||||
|
||||
go func() {
|
||||
@ -322,7 +321,7 @@ func (fh *bytesFileWriteHandle) Flush(ctx context.Context) (errno syscall.Errno)
|
||||
if err != nil {
|
||||
log.Error("FUSE Flush failed during write").Str("path", fh.path).Err(err).Send()
|
||||
fp.Close()
|
||||
return syscall.EIO
|
||||
return syscallErr(err)
|
||||
}
|
||||
if int(nread) != len(fh.content) {
|
||||
log.Error("FUSE Flush failed during write").Str("path", fh.path).Int("expect", len(fh.content)).Int("got", int(nread)).Send()
|
||||
@ -332,7 +331,7 @@ func (fh *bytesFileWriteHandle) Flush(ctx context.Context) (errno syscall.Errno)
|
||||
err = fp.Close()
|
||||
if err != nil {
|
||||
log.Error("FUSE Flush failed during close").Str("path", fh.path).Err(err).Send()
|
||||
yannickulrich marked this conversation as resolved
|
||||
return syscall.EIO
|
||||
return syscallErr(err)
|
||||
}
|
||||
log.Debug("FUSE Flush done").Str("path", fh.path).Int("size", len(fh.content)).Send()
|
||||
|
||||
@ -383,9 +382,8 @@ func (f *ITNode) Open(ctx context.Context, openFlags uint32) (fh fs.FileHandle,
|
||||
log.Debug("FUSE Opening for read").Str("path", f.path).Send()
|
||||
fp, err := myfs.Open(f.path)
|
||||
if err != nil {
|
||||
// TODO we probably should figure out why it failed
|
||||
log.Error("FUSE: Opening failed").Str("path", f.path).Err(err).Send()
|
||||
return nil, 0, syscall.EROFS
|
||||
return nil, 0, syscallErr(err)
|
||||
}
|
||||
|
||||
defer fp.Close()
|
||||
@ -403,7 +401,7 @@ func (f *ITNode) Open(ctx context.Context, openFlags uint32) (fh fs.FileHandle,
|
||||
if err != nil {
|
||||
log.Error("FUSE Read failed").Str("path", f.path).Err(err).Send()
|
||||
fp.Close()
|
||||
return nil, 0, syscall.EIO
|
||||
return nil, 0, syscallErr(err)
|
||||
}
|
||||
|
||||
fh = &bytesFileReadHandle{
|
||||
@ -425,8 +423,7 @@ func (f *ITNode) Open(ctx context.Context, openFlags uint32) (fh fs.FileHandle,
|
||||
sub_ctx, cancel := context.WithCancel(ctx)
|
||||
ans, err := value.gen(sub_ctx)
|
||||
if err != nil {
|
||||
// TODO we probably should figure out why it failed
|
||||
return nil, 0, syscall.EIO
|
||||
return nil, 0, syscallErr(err)
|
||||
}
|
||||
|
||||
fh = &sensorFileReadHandle{
|
||||
@ -484,8 +481,7 @@ func (f *ITNode) Mkdir(ctx context.Context, name string, mode uint32, out *fuse.
|
||||
Str("path", path).
|
||||
Err(err).
|
||||
Send()
|
||||
// TODO we probably should figure out why it failed
|
||||
return nil, syscall.EROFS
|
||||
return nil, syscallErr(err)
|
||||
}
|
||||
|
||||
ino := uint64(len(inodemap)) + 11
|
||||
@ -525,8 +521,7 @@ func (f *ITNode) Rename(ctx context.Context, name string, newParent fs.InodeEmbe
|
||||
Err(err).
|
||||
Send()
|
||||
|
||||
// TODO we probably should figure out why it failed
|
||||
return syscall.EIO
|
||||
return syscallErr(err)
|
||||
}
|
||||
log.Debug("FUSE Rename sucess").
|
||||
Str("src", p1).
|
||||
@ -554,8 +549,7 @@ func (f *ITNode) Unlink(ctx context.Context, name string) syscall.Errno {
|
||||
Err(err).
|
||||
Send()
|
||||
|
||||
// TODO we probably should figure out why it failed
|
||||
return syscall.EIO
|
||||
return syscallErr(err)
|
||||
}
|
||||
|
||||
log.Debug("FUSE Unlink success").
|
||||
|
Loading…
Reference in New Issue
Block a user
These should be debug logs rather than info logs. Also, the message should be a bit more specific, something like "FUSE getattr". Same for all the similar logs.
Done in
b5328ec