@cryptotaxi247 / kubo / commits / 6e126ed79

fuse/ipns: Only change file size in Setattr if asked to

This used to cause files e.g. being edited with `vi` to become 0-size. License: MIT Signed-off-by: Tommi Virtanen <tv@eagain.net>

Tommi Virtanen committed Sep 1, 2015 at 15:34 UTC 6e126ed79db0e484dfe9db5724fc21df1e7627b2
1 file changed +8 -6
fuse/ipns/ipns_unix.go
+8 -6
@@ -335,15 +335,17 @@ func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error {
335 }
336
337 func (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error {
338 - cursize, err := fi.fi.Size()
339 - if err != nil {
340 - return err
341 - }
342 - if cursize != int64(req.Size) {
343 - err := fi.fi.Truncate(int64(req.Size))
338 + if req.Valid.Size() {
339 + cursize, err := fi.fi.Size()
340 if err != nil {
341 return err
342 }
343 + if cursize != int64(req.Size) {
344 + err := fi.fi.Truncate(int64(req.Size))
345 + if err != nil {
346 + return err
347 + }
348 + }
349 }
350 return nil
351 }