Fixed 'touch' behaviour
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
This commit is contained in:
parent
9bbdc3bd52
commit
dc53ead339
@ -298,9 +298,6 @@ func (fh *bytesFileWriteHandle) Write(ctx context.Context, data []byte, off int6
|
||||
|
||||
var _ fs.FileFlusher = (*bytesFileWriteHandle)(nil)
|
||||
func (fh *bytesFileWriteHandle) Flush(ctx context.Context) (errno syscall.Errno) {
|
||||
if len(fh.content) == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
log.Debug("FUSE Attempting flush").Str("path", fh.path).Send()
|
||||
fp, err := myfs.Create(fh.path, uint32(len(fh.content)))
|
||||
@ -309,6 +306,16 @@ func (fh *bytesFileWriteHandle) Flush(ctx context.Context) (errno syscall.Errno)
|
||||
return syscallErr(err)
|
||||
}
|
||||
|
||||
if len(fh.content) == 0 {
|
||||
log.Debug("FUSE Flush no data to write").Str("path", fh.path).Send()
|
||||
err = fp.Close()
|
||||
if err != nil {
|
||||
log.Error("FUSE Flush failed during close").Str("path", fh.path).Err(err).Send()
|
||||
return syscallErr(err)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
go func() {
|
||||
// For every progress event
|
||||
for sent := range fp.Progress() {
|
||||
|
Loading…
Reference in New Issue
Block a user