No description
Bakul Shah has observed corrupted files being written
when acme writes over osxfuse to sshfs to a remote file system.
In one example we examined, acme is writing an 0xf03-byte
file in two system calls, first an 0x806-byte write and then a 0x6fd-byte
write. (0x806 is BUFSIZE/sizeof(Rune); this file has no multibyte UTF-8.)
What actually ends up happening is that an 0x806-byte file is written:
0x000-0x6fd contains what should be 0x806-0xf03
0x6fd-0x7fa contains zeros
0x7fa-0x806 contains what should be 0x7fa-0x806 (correct!)
The theory is that fuse or sshfs or perhaps the remote file server is
mishandling the unaligned writes. acme does not seem to be at fault.
Using bio here will make the writes align to 8K boundaries,
avoiding the bugs in whatever underlying piece is broken.
TBR=r
https://codereview.appspot.com/89550043
|
||
|---|---|---|
| acid | ||
| bin | ||
| dict | ||
| dist | ||
| face | ||
| font | ||
| include | ||
| lib | ||
| log | ||
| lp | ||
| mac | ||
| man | ||
| ndb | ||
| news | ||
| plumb | ||
| postscript | ||
| proto | ||
| sky | ||
| src | ||
| tmac | ||
| troff | ||
| unix | ||
| .cvsignore | ||
| .hgignore | ||
| .hgtags | ||
| CHANGES | ||
| configure | ||
| CONTRIBUTORS | ||
| INSTALL | ||
| install.txt | ||
| LICENSE | ||
| Makefile | ||
| rcmain | ||
| README | ||
| TODO | ||
This is a port of many Plan 9 libraries and programs to Unix.
* Installation
To install, run ./INSTALL. It builds mk and then uses mk to
run the rest of the installation.
For more details, see install(1), at install.txt in this directory
and at http://swtch.com/plan9port/man/man1/install.html.
* Documentation
See http://swtch.com/plan9port/man/ for more documentation.
(Documentation is also in this tree, but you need to run
a successful install first. After that, "9 man 1 intro".)
Intro(1) contains a list of man pages that describe new features
or differences from Plan 9.
* Helping out
If you'd like to help out, great! The TODO file contains a small list.
If you port this code to other architectures, please share your changes
so others can benefit.
Please use diff -u or CVS (see below) to prepare patches.
* CVS
You can use CVS to keep your local copy up-to-date as we make
changes and fix bugs. See the cvs(1) man page here ("9 man cvs")
for details on using cvs.
* Contact
Russ Cox <rsc@swtch.com>