diff --git a/fuse/ipns/ipns_unix.go b/fuse/ipns/ipns_unix.go index 91c3db55d..c6759531d 100644 --- a/fuse/ipns/ipns_unix.go +++ b/fuse/ipns/ipns_unix.go @@ -335,15 +335,17 @@ func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error { } func (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error { - cursize, err := fi.fi.Size() - if err != nil { - return err - } - if cursize != int64(req.Size) { - err := fi.fi.Truncate(int64(req.Size)) + if req.Valid.Size() { + cursize, err := fi.fi.Size() if err != nil { return err } + if cursize != int64(req.Size) { + err := fi.fi.Truncate(int64(req.Size)) + if err != nil { + return err + } + } } return nil }