提交 6e126ed7 作者: Tommi Virtanen 提交者: Jeromy

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: 's avatarTommi Virtanen <tv@eagain.net>
上级 fbd9cabd
...@@ -335,15 +335,17 @@ func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error { ...@@ -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 { func (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error {
cursize, err := fi.fi.Size() if req.Valid.Size() {
if err != nil { cursize, err := fi.fi.Size()
return err
}
if cursize != int64(req.Size) {
err := fi.fi.Truncate(int64(req.Size))
if err != nil { if err != nil {
return err return err
} }
if cursize != int64(req.Size) {
err := fi.fi.Truncate(int64(req.Size))
if err != nil {
return err
}
}
} }
return nil return nil
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论