Browse Source

Plan 9 from Bell Labs 2008-08-09

David du Colombier 15 years ago
parent
commit
620a18264e

+ 4 - 4
dist/replica/_plan9.db

@@ -7877,7 +7877,7 @@ sys/man/8/mkpaqfs - 664 sys sys 1196638947 890
 sys/man/8/mksacfs - 664 sys sys 1196638947 710
 sys/man/8/mksacfs - 664 sys sys 1196638947 710
 sys/man/8/mouse - 664 sys sys 1196638947 2476
 sys/man/8/mouse - 664 sys sys 1196638947 2476
 sys/man/8/na - 664 sys sys 1196638947 859
 sys/man/8/na - 664 sys sys 1196638947 859
-sys/man/8/ndb - 664 sys sys 1207767560 15239
+sys/man/8/ndb - 664 sys sys 1218247417 15243
 sys/man/8/newuser - 664 sys sys 1196638947 2418
 sys/man/8/newuser - 664 sys sys 1196638947 2418
 sys/man/8/nfsserver - 664 sys sys 1217138303 3807
 sys/man/8/nfsserver - 664 sys sys 1217138303 3807
 sys/man/8/partfs - 664 sys sys 1196638947 869
 sys/man/8/partfs - 664 sys sys 1196638947 869
@@ -13225,7 +13225,7 @@ sys/src/cmd/proof/mkfile - 664 sys sys 944961622 180
 sys/src/cmd/proof/proof.h - 664 sys sys 955223407 919
 sys/src/cmd/proof/proof.h - 664 sys sys 955223407 919
 sys/src/cmd/proof/screen.c - 664 sys sys 1204590226 6673
 sys/src/cmd/proof/screen.c - 664 sys sys 1204590226 6673
 sys/src/cmd/ps.c - 664 sys sys 1144686672 2783
 sys/src/cmd/ps.c - 664 sys sys 1144686672 2783
-sys/src/cmd/pump.c - 664 sys sys 1213765467 2941
+sys/src/cmd/pump.c - 664 sys sys 1218240660 3392
 sys/src/cmd/pwd.c - 664 sys sys 1067722792 287
 sys/src/cmd/pwd.c - 664 sys sys 1067722792 287
 sys/src/cmd/qa - 20000000775 sys sys 1039727573 0
 sys/src/cmd/qa - 20000000775 sys sys 1039727573 0
 sys/src/cmd/qa/a.h - 664 sys sys 1089299169 3252
 sys/src/cmd/qa/a.h - 664 sys sys 1089299169 3252
@@ -14150,7 +14150,7 @@ sys/src/cmd/unix/winplumb.c - 664 sys sys 1047233509 5015
 sys/src/cmd/unix/winplumb.exe - 664 sys sys 1047233509 32768
 sys/src/cmd/unix/winplumb.exe - 664 sys sys 1047233509 32768
 sys/src/cmd/unix/winstart - 775 sys sys 1047233540 60
 sys/src/cmd/unix/winstart - 775 sys sys 1047233540 60
 sys/src/cmd/unlnfs.c - 664 sys sys 1127525524 1914
 sys/src/cmd/unlnfs.c - 664 sys sys 1127525524 1914
-sys/src/cmd/unmount.c - 664 sys sys 1014926615 442
+sys/src/cmd/unmount.c - 664 sys sys 1218224318 526
 sys/src/cmd/upas - 20000000775 sys sys 1075080223 0
 sys/src/cmd/upas - 20000000775 sys sys 1075080223 0
 sys/src/cmd/upas/README - 664 sys sys 944961329 1041
 sys/src/cmd/upas/README - 664 sys sys 944961329 1041
 sys/src/cmd/upas/alias - 20000000775 sys sys 1064589598 0
 sys/src/cmd/upas/alias - 20000000775 sys sys 1064589598 0
@@ -14428,7 +14428,7 @@ sys/src/cmd/venti/srv/venti.c - 664 sys sys 1196382019 5604
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966
-sys/src/cmd/venti/srv/wrarena.c - 664 sys sys 1210358091 4559
+sys/src/cmd/venti/srv/wrarena.c - 664 sys sys 1218240713 4601
 sys/src/cmd/venti/srv/www - 20000000775 sys sys 1189019173 0
 sys/src/cmd/venti/srv/www - 20000000775 sys sys 1189019173 0
 sys/src/cmd/venti/srv/www/stats.html - 664 sys sys 1177190826 869
 sys/src/cmd/venti/srv/www/stats.html - 664 sys sys 1177190826 869
 sys/src/cmd/venti/srv/www/stats.js - 664 sys sys 1177190826 9427
 sys/src/cmd/venti/srv/www/stats.js - 664 sys sys 1177190826 9427

+ 4 - 4
dist/replica/plan9.db

@@ -7877,7 +7877,7 @@ sys/man/8/mkpaqfs - 664 sys sys 1196638947 890
 sys/man/8/mksacfs - 664 sys sys 1196638947 710
 sys/man/8/mksacfs - 664 sys sys 1196638947 710
 sys/man/8/mouse - 664 sys sys 1196638947 2476
 sys/man/8/mouse - 664 sys sys 1196638947 2476
 sys/man/8/na - 664 sys sys 1196638947 859
 sys/man/8/na - 664 sys sys 1196638947 859
-sys/man/8/ndb - 664 sys sys 1207767560 15239
+sys/man/8/ndb - 664 sys sys 1218247417 15243
 sys/man/8/newuser - 664 sys sys 1196638947 2418
 sys/man/8/newuser - 664 sys sys 1196638947 2418
 sys/man/8/nfsserver - 664 sys sys 1217138303 3807
 sys/man/8/nfsserver - 664 sys sys 1217138303 3807
 sys/man/8/partfs - 664 sys sys 1196638947 869
 sys/man/8/partfs - 664 sys sys 1196638947 869
@@ -13225,7 +13225,7 @@ sys/src/cmd/proof/mkfile - 664 sys sys 944961622 180
 sys/src/cmd/proof/proof.h - 664 sys sys 955223407 919
 sys/src/cmd/proof/proof.h - 664 sys sys 955223407 919
 sys/src/cmd/proof/screen.c - 664 sys sys 1204590226 6673
 sys/src/cmd/proof/screen.c - 664 sys sys 1204590226 6673
 sys/src/cmd/ps.c - 664 sys sys 1144686672 2783
 sys/src/cmd/ps.c - 664 sys sys 1144686672 2783
-sys/src/cmd/pump.c - 664 sys sys 1213765467 2941
+sys/src/cmd/pump.c - 664 sys sys 1218240660 3392
 sys/src/cmd/pwd.c - 664 sys sys 1067722792 287
 sys/src/cmd/pwd.c - 664 sys sys 1067722792 287
 sys/src/cmd/qa - 20000000775 sys sys 1039727573 0
 sys/src/cmd/qa - 20000000775 sys sys 1039727573 0
 sys/src/cmd/qa/a.h - 664 sys sys 1089299169 3252
 sys/src/cmd/qa/a.h - 664 sys sys 1089299169 3252
@@ -14150,7 +14150,7 @@ sys/src/cmd/unix/winplumb.c - 664 sys sys 1047233509 5015
 sys/src/cmd/unix/winplumb.exe - 664 sys sys 1047233509 32768
 sys/src/cmd/unix/winplumb.exe - 664 sys sys 1047233509 32768
 sys/src/cmd/unix/winstart - 775 sys sys 1047233540 60
 sys/src/cmd/unix/winstart - 775 sys sys 1047233540 60
 sys/src/cmd/unlnfs.c - 664 sys sys 1127525524 1914
 sys/src/cmd/unlnfs.c - 664 sys sys 1127525524 1914
-sys/src/cmd/unmount.c - 664 sys sys 1014926615 442
+sys/src/cmd/unmount.c - 664 sys sys 1218224318 526
 sys/src/cmd/upas - 20000000775 sys sys 1075080223 0
 sys/src/cmd/upas - 20000000775 sys sys 1075080223 0
 sys/src/cmd/upas/README - 664 sys sys 944961329 1041
 sys/src/cmd/upas/README - 664 sys sys 944961329 1041
 sys/src/cmd/upas/alias - 20000000775 sys sys 1064589598 0
 sys/src/cmd/upas/alias - 20000000775 sys sys 1064589598 0
@@ -14428,7 +14428,7 @@ sys/src/cmd/venti/srv/venti.c - 664 sys sys 1196382019 5604
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966
-sys/src/cmd/venti/srv/wrarena.c - 664 sys sys 1210358091 4559
+sys/src/cmd/venti/srv/wrarena.c - 664 sys sys 1218240713 4601
 sys/src/cmd/venti/srv/www - 20000000775 sys sys 1189019173 0
 sys/src/cmd/venti/srv/www - 20000000775 sys sys 1189019173 0
 sys/src/cmd/venti/srv/www/stats.html - 664 sys sys 1177190826 869
 sys/src/cmd/venti/srv/www/stats.html - 664 sys sys 1177190826 869
 sys/src/cmd/venti/srv/www/stats.js - 664 sys sys 1177190826 9427
 sys/src/cmd/venti/srv/www/stats.js - 664 sys sys 1177190826 9427

+ 4 - 0
dist/replica/plan9.log

@@ -20120,3 +20120,7 @@
 1218137404 1 c 386/bin/unvac - 775 sys sys 1218136577 228866
 1218137404 1 c 386/bin/unvac - 775 sys sys 1218136577 228866
 1218137404 2 c 386/bin/vac - 775 sys sys 1218136581 229446
 1218137404 2 c 386/bin/vac - 775 sys sys 1218136581 229446
 1218137404 3 c 386/bin/vacfs - 775 sys sys 1218136585 243628
 1218137404 3 c 386/bin/vacfs - 775 sys sys 1218136585 243628
+1218225604 0 c sys/src/cmd/unmount.c - 664 sys sys 1218224318 526
+1218241805 0 c sys/src/cmd/venti/srv/wrarena.c - 664 sys sys 1218240713 4601
+1218241805 1 c sys/src/cmd/pump.c - 664 sys sys 1218240660 3392
+1218247205 0 c sys/man/8/ndb - 664 sys sys 1218247417 15243

+ 1 - 1
sys/man/8/ndb

@@ -290,7 +290,7 @@ default
 .BR /lib/ndb/local .
 .BR /lib/ndb/local .
 .TP
 .TP
 .B -n
 .B -n
-whenever a zone that we serve changes, send UDP NOTIFY
+whenever a DNS zone that we serve changes, send UDP NOTIFY
 messages to any dns slaves for that zone
 messages to any dns slaves for that zone
 (see the
 (see the
 .L dnsslave
 .L dnsslave

+ 37 - 6
sys/src/cmd/pump.c

@@ -3,12 +3,15 @@
 #include <libc.h>
 #include <libc.h>
 
 
 uchar*	buf;
 uchar*	buf;
-ulong	nin;
-ulong	nout;
+
+Lock	arithlock;	/* protect 64-bit accesses: unlikely to be atomic */
+uvlong	nin;
+uvlong	nout;
+
 ulong	kilo;
 ulong	kilo;
 ulong	max;
 ulong	max;
 long	ssize;
 long	ssize;
-long	tsize;
+vlong	tsize;
 int	dsize;
 int	dsize;
 int	done;
 int	done;
 int	ibsize;
 int	ibsize;
@@ -69,7 +72,7 @@ main(int argc, char *argv[])
 		ssize <<= 10;
 		ssize <<= 10;
 		break;
 		break;
 	case 't':
 	case 't':
-		tsize = atol(EARGF(usage()));
+		tsize = atoll(EARGF(usage()));
 		tsize *= 10584000;		/* minutes */
 		tsize *= 10584000;		/* minutes */
 		break;
 		break;
 	} ARGEND
 	} ARGEND
@@ -109,17 +112,30 @@ main(int argc, char *argv[])
 	exits(0);
 	exits(0);
 }
 }
 
 
+/* call with arithlock held */
+static int
+sleepunlocked(long ms)
+{
+	int r;
+
+	unlock(&arithlock);
+	r = sleep(ms);
+	lock(&arithlock);
+	return r;
+}
+
 void
 void
 dooutput(int f)
 dooutput(int f)
 {
 {
 	long n, l, c;
 	long n, l, c;
 
 
+	lock(&arithlock);
 	for (;;) {
 	for (;;) {
 		n = nin - nout;
 		n = nin - nout;
 		if(n == 0) {
 		if(n == 0) {
 			if(done)
 			if(done)
 				break;
 				break;
-			sleep(dsize);
+			sleepunlocked(dsize);
 			continue;
 			continue;
 		}
 		}
 		if(verb && n > max) {
 		if(verb && n > max) {
@@ -127,11 +143,15 @@ dooutput(int f)
 			max = n;
 			max = n;
 		}
 		}
 		l = nout % kilo;
 		l = nout % kilo;
+		unlock(&arithlock);
+
 		if(kilo-l < n)
 		if(kilo-l < n)
 			n = kilo-l;
 			n = kilo-l;
 		if(n > obsize)
 		if(n > obsize)
 			n = obsize;
 			n = obsize;
 		c = write(f, buf+l, n);
 		c = write(f, buf+l, n);
+
+		lock(&arithlock);
 		if(c != n) {
 		if(c != n) {
 			fprint(2, "%s: write error: %r\n", argv0);
 			fprint(2, "%s: write error: %r\n", argv0);
 			break;
 			break;
@@ -142,6 +162,7 @@ dooutput(int f)
 			break;
 			break;
 		}
 		}
 	}
 	}
+	unlock(&arithlock);
 }
 }
 
 
 void
 void
@@ -149,17 +170,22 @@ doinput(int f)
 {
 {
 	long n, l, c, xnin;
 	long n, l, c, xnin;
 
 
+	lock(&arithlock);
 	if(ssize > 0) {
 	if(ssize > 0) {
 		for (xnin = 0; xnin < ssize && !done; xnin += c) {
 		for (xnin = 0; xnin < ssize && !done; xnin += c) {
 			n = kilo - (xnin - nout);
 			n = kilo - (xnin - nout);
 			if(n == 0)
 			if(n == 0)
 				break;
 				break;
+			unlock(&arithlock);
+
 			l = xnin % kilo;
 			l = xnin % kilo;
 			if(kilo-l < n)
 			if(kilo-l < n)
 				n = kilo-l;
 				n = kilo-l;
 			if(n > ibsize)
 			if(n > ibsize)
 				n = ibsize;
 				n = ibsize;
 			c = read(f, buf+l, n);
 			c = read(f, buf+l, n);
+
+			lock(&arithlock);
 			if(c <= 0) {
 			if(c <= 0) {
 				if(c < 0)
 				if(c < 0)
 					fprint(2, "%s: read error: %r\n", argv0);
 					fprint(2, "%s: read error: %r\n", argv0);
@@ -171,15 +197,19 @@ doinput(int f)
 	while(!done) {
 	while(!done) {
 		n = kilo - (nin - nout);
 		n = kilo - (nin - nout);
 		if(n == 0) {
 		if(n == 0) {
-			sleep(0);
+			sleepunlocked(0);
 			continue;
 			continue;
 		}
 		}
 		l = nin % kilo;
 		l = nin % kilo;
+		unlock(&arithlock);
+
 		if(kilo-l < n)
 		if(kilo-l < n)
 			n = kilo-l;
 			n = kilo-l;
 		if(n > ibsize)
 		if(n > ibsize)
 			n = ibsize;
 			n = ibsize;
 		c = read(f, buf+l, n);
 		c = read(f, buf+l, n);
+
+		lock(&arithlock);
 		if(c <= 0) {
 		if(c <= 0) {
 			if(c < 0)
 			if(c < 0)
 				fprint(2, "%s: read error: %r\n", argv0);
 				fprint(2, "%s: read error: %r\n", argv0);
@@ -187,4 +217,5 @@ doinput(int f)
 		}
 		}
 		nin += c;
 		nin += c;
 	}
 	}
+	unlock(&arithlock);
 }
 }

+ 17 - 11
sys/src/cmd/unmount.c

@@ -1,26 +1,32 @@
 #include <u.h>
 #include <u.h>
 #include <libc.h>
 #include <libc.h>
-	
+
 void
 void
 main(int argc, char *argv[])
 main(int argc, char *argv[])
 {
 {
 	int r;
 	int r;
+	char *mnted, *mtpt;
 
 
-	if(argc < 2  || argc > 3) {
+	argv0 = argv[0];
+	switch (argc) {
+	case 2:
+		mnted = nil;
+		mtpt = argv[1];
+		break;
+	case 3:
+		mnted = argv[1];
+		mtpt = argv[2];
+		break;
+	default:
+		SET(mnted, mtpt);
 		fprint(2, "usage: unmount mountpoint\n");
 		fprint(2, "usage: unmount mountpoint\n");
 		fprint(2, "       unmount mounted mountpoint\n");
 		fprint(2, "       unmount mounted mountpoint\n");
 		exits("usage");
 		exits("usage");
 	}
 	}
 
 
 	/* unmount takes arguments in the same order as mount */
 	/* unmount takes arguments in the same order as mount */
-	if(argc < 3)
-		r = unmount(0, argv[1]);
-	else
-		r = unmount(argv[1], argv[2]);
-
-	if(r < 0) {
-		fprint(2, "unmount:%r\n");
-		exits("error");
-	}
+	r = unmount(mnted, mtpt);
+	if(r < 0)
+		sysfatal("%s: %r", mtpt);
 	exits(0);
 	exits(0);
 }
 }

+ 3 - 2
sys/src/cmd/venti/srv/wrarena.c

@@ -87,8 +87,8 @@ rdarena(Arena *arena, u64int offset)
 			break;
 			break;
 		if(a < aa || ci.type == VtCorruptType){
 		if(a < aa || ci.type == VtCorruptType){
 			if(ci.type == VtCorruptType)
 			if(ci.type == VtCorruptType)
-				fprint(2, "corrupt at %#llx: +%d\n",
-					a, ClumpSize+ci.size);
+				fprint(2, "%s: corrupt clump read at %#llx: +%d\n",
+					argv0, a, ClumpSize+ci.size);
 			continue;
 			continue;
 		}
 		}
 		lump = loadclump(arena, a, 0, &cl, score, 0);
 		lump = loadclump(arena, a, 0, &cl, score, 0);
@@ -137,6 +137,7 @@ threadmain(int argc, char *argv[])
 	ArenaHead head;
 	ArenaHead head;
 	ZClump zerocl;
 	ZClump zerocl;
 
 
+	ventifmtinstall();
 	qlock(&godot);
 	qlock(&godot);
 	aoffset = 0;
 	aoffset = 0;
 	ARGBEGIN{
 	ARGBEGIN{