Unverified 提交 d74ec0d9 作者: Whyrusleeping 提交者: GitHub

Merge pull request #5253 from schomatis/fix/dag-truncate/same-size

fix truncating when already at the correct size
...@@ -1111,3 +1111,28 @@ func TestFileDescriptors(t *testing.T) { ...@@ -1111,3 +1111,28 @@ func TestFileDescriptors(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
} }
func TestTruncateAtSize(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ds, rt := setupRoot(ctx, t)
dir := rt.GetDirectory()
nd := dag.NodeWithData(ft.FilePBData(nil, 0))
fi, err := NewFile("test", nd, dir, ds)
if err != nil {
t.Fatal(err)
}
fd, err := fi.Open(OpenReadWrite, true)
if err != nil {
t.Fatal(err)
}
defer fd.Close()
_, err = fd.Write([]byte("test"))
if err != nil {
t.Fatal(err)
}
fd.Truncate(4)
}
...@@ -481,6 +481,9 @@ func (dm *DagModifier) Truncate(size int64) error { ...@@ -481,6 +481,9 @@ func (dm *DagModifier) Truncate(size int64) error {
if err != nil { if err != nil {
return err return err
} }
if size == int64(realSize) {
return nil
}
// Truncate can also be used to expand the file // Truncate can also be used to expand the file
if size > int64(realSize) { if size > int64(realSize) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论