aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/acme/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/acme/exec.c')
-rw-r--r--src/cmd/acme/exec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cmd/acme/exec.c b/src/cmd/acme/exec.c
index 0ef66847..6f8bf3f6 100644
--- a/src/cmd/acme/exec.c
+++ b/src/cmd/acme/exec.c
@@ -662,6 +662,11 @@ putfile(File *f, int q0, int q1, Rune *namer, int nname)
warning(nil, "can't create file %s: %r\n", name);
goto Rescue1;
}
+ // Use bio in order to force the writes to be large and
+ // block-aligned (bio's default is 8K). This is not strictly
+ // necessary; it works around some buggy underlying
+ // file systems that mishandle unaligned writes.
+ // https://codereview.appspot.com/89550043/
b = emalloc(sizeof *b);
Binit(b, fd, OWRITE);
r = fbufalloc();