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
}