Skip to content

Commit 85297cd

Browse files
committed
fusefrontend: doWrite: report readFileID errors as I/O error
It used to be reported as "function not implemented", accompanied with this log output: go-fuse: can't convert error type: ParseHeader: header is all-zero. Header hexdump: 000000000000000000000000000000000000 Now we report EIO and log this: doWrite 1372183: corrupt header: ParseHeader: header is all-zero. Header hexdump: 000000000000000000000000000000000000
1 parent e9a5b89 commit 85297cd

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

internal/fusefrontend/file.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,10 @@ func (f *File) doWrite(data []byte, off int64) (uint32, syscall.Errno) {
273273
if err == io.EOF {
274274
fileID, err = f.createHeader()
275275
fileWasEmpty = true
276+
} else if err != nil {
277+
// Other errors mean readFileID() found a corrupt header
278+
tlog.Warn.Printf("doWrite %d: corrupt header: %v", f.qIno.Ino, err)
279+
return 0, syscall.EIO
276280
}
277281
if err != nil {
278282
return 0, fs.ToErrno(err)

0 commit comments

Comments
 (0)