diff options
author | Jakob Unterwurzacher | 2018-07-15 14:14:12 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-07-15 15:12:55 +0200 |
commit | c70df522d2a78f3152fa61511bed9fafa7c495a3 (patch) | |
tree | 0ce081f2454a8e6da923355d11e5ed832ad7e302 /internal/fusefrontend/file_allocate_truncate.go | |
parent | 55bb22bad6c196f363ad27fbedad4f5360c4879f (diff) |
fusefrontend: doWrite: delete file header if first write fails
xfstests generic/083 fills the filesystem almost completely while
running fsstress in parallel. In fsck, these would show up:
readFileID 2580: incomplete file, got 18 instead of 19 bytes
This could happen when writing the file header works, but writing
the actual data fails.
Now we kill the header again by truncating the file to zero.
Diffstat (limited to 'internal/fusefrontend/file_allocate_truncate.go')
-rw-r--r-- | internal/fusefrontend/file_allocate_truncate.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/internal/fusefrontend/file_allocate_truncate.go b/internal/fusefrontend/file_allocate_truncate.go index 74c51a7..81ac8d3 100644 --- a/internal/fusefrontend/file_allocate_truncate.go +++ b/internal/fusefrontend/file_allocate_truncate.go @@ -144,7 +144,7 @@ func (f *File) Truncate(newSize uint64) fuse.Status { var data []byte if lastBlockLen > 0 { var status fuse.Status - data, status = f.doRead(nil, plainOff, lastBlockLen) + data, status = f.doRead(nil, plainOff, lastBlockLen, false) if status != fuse.OK { tlog.Warn.Printf("Truncate: shrink doRead returned error: %v", err) return status |