No description
Find a file
Russ Cox 1d2c3c3945 acme: use buffered i/o to write file
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
2014-04-19 10:09:22 -04:00
acid merge 2012-03-05 16:36:31 -05:00
bin all: DragonFly port. 2014-02-27 23:17:47 -05:00
dict now with hget 2005-07-18 22:52:05 +00:00
dist dist/main.html: update supported systems and commit log link. 2014-03-25 23:23:10 -04:00
face faces for lp. 2005-09-13 01:24:50 +00:00
font font: add peter face to font/times/*.font 2009-08-24 08:05:09 -07:00
include libdraw: change DefaultDPI to 133 2012-11-26 00:13:04 -05:00
lib codereview: sync from Go. 2014-02-24 01:21:48 -05:00
log ignore everything 2005-02-13 22:09:54 +00:00
lp lp: move devices to devices.sample 2009-04-30 07:28:37 -07:00
mac mac/Plumb: add URL scheme to Info.plist 2014-01-22 13:43:39 -05:00
mail merge 2007-11-27 15:39:06 -05:00
man man/man1/0intro.1: update supported systems. 2014-03-14 10:10:20 -04:00
ndb ndb/local: remove rsc-specific entries (oops) 2008-06-04 13:28:05 -04:00
news odds and ends 2004-04-21 23:43:46 +00:00
plumb acme: scroll a directory window when navigating if: 2013-10-22 16:47:48 -07:00
postscript troff: yet another case problem (OS X) 2008-02-01 07:54:19 -05:00
proto forgotten files 2005-01-13 04:56:07 +00:00
sky add here 2005-01-27 19:28:22 +00:00
src acme: use buffered i/o to write file 2014-04-19 10:09:22 -04:00
tmac tmac.an: insert spaces after .?? request names 2008-11-11 11:01:03 -08:00
troff tr2post: rename charlib files to not be case-dependent (OS X) 2008-01-31 16:58:38 -05:00
unix unix: move Makefile so that it cannot be run accidentally 2009-08-24 07:53:01 -07:00
.cvsignore merge 2007-11-27 15:39:06 -05:00
.hgignore devdraw: restore compilation on OS X 10.6 2012-11-25 21:20:18 -05:00
.hgtags Added tag rtag for changeset 0b0321e26f56 2007-06-24 20:05:05 -04:00
CHANGES CHANGES: add pointer to web version 2008-05-10 13:38:21 -04:00
configure For annoying people like Uriel. 2005-11-25 13:18:11 +00:00
CONTRIBUTORS acme: copy/cut/paste with ctl+c,x,v 2014-03-13 18:48:41 -04:00
INSTALL INSTALL: fix architecture detection on Solaris. 2014-03-05 16:43:20 -05:00
install.txt install: typo in man page 2009-04-30 08:30:49 -07:00
LICENSE allow less restricted use of plan9port-specific code 2009-08-14 21:08:23 -07:00
Makefile For annoying people like Uriel. 2005-11-25 13:18:11 +00:00
rcmain rcmain: use new $termprog variable 2013-08-13 12:46:38 -04:00
README add text version of install(1) 2005-11-28 16:36:57 +00:00
TODO Note 9P2000.u 2005-08-31 04:00:14 +00:00

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>