commit - f51bf048784abd642dea4f033bc95acbd4468b6a
commit + 7252036fe876f522b5549f1d97c79528ca1be7ff
blob - e1bb23259c244b912f555d4cb74bf0576762fc29
blob + e09ad177183789a2257fe18b3dd809542d7f1031
--- include/venti.h
+++ include/venti.h
/* client */
Packet *vtrpc(VtConn*, Packet*);
+Packet *_vtrpc(VtConn*, Packet*, VtFcall*);
void vtrecvproc(void*); /* VtConn* */
void vtsendproc(void*); /* VtConn* */
VtBlock *vtblockcopy(VtBlock*);
void vtblockduplock(VtBlock*);
+extern int vtcachencopy, vtcachenread, vtcachenwrite;
+
/*
* Hash tree file tree.
*/
blob - 71bdb62c84a5b3b6e5a1eb9687ca3f9f5a23b934
blob + 8dcb52f51d6dfb0a420d8a8fa7ffeecff8aaefc5
--- src/libventi/cache.c
+++ src/libventi/cache.c
#include <libc.h>
#include <venti.h>
-int nread, ncopy, nwrite;
+int vtcachenread;
+int vtcachencopy;
+int vtcachenwrite;
enum {
BioLocal = 1,
b->nlock = 1;
qunlock(&c->lk);
+ vtcachenread++;
n = vtread(c->z, score, type, b->data, c->blocksize);
if(n < 0){
werrstr("vtread %V: %r", score);
c = b->c;
n = vtzerotruncate(b->type, b->data, c->blocksize);
+ vtcachenwrite++;
if(c->write(c->z, score, b->type, b->data, n) < 0)
return -1;
{
VtBlock *bb;
-ncopy++;
+ vtcachencopy++;
bb = vtcacheallocblock(b->c, b->type);
if(bb == nil){
vtblockput(b);
blob - bb102c9ffea43b4c09b9b6843b664881b5590fd1
blob + 3396386086e6f05b1ac1370eee4f7fc7a8da72e1
--- src/libventi/client.c
+++ src/libventi/client.c
{
Packet *p;
- if(chattyventi)
- fprint(2, "%s -> %F\n", argv0, ou);
p = vtfcallpack(ou);
if(p == nil)
return -1;
- if((p = vtrpc(z, p)) == nil)
+ if((p = _vtrpc(z, p, ou)) == nil)
return -1;
if(vtfcallunpack(in, p) < 0){
packetfree(p);
blob - 0cd9410a7f0380bbec11d73780bcf553b2f6b2a6
blob + faf806293e1c1d21639f9c24f4b0cfc9a767d64c
--- src/libventi/rpc.c
+++ src/libventi/rpc.c
static int gettag(VtConn*, Rwait*);
static void puttag(VtConn*, Rwait*, int);
static void muxrpc(VtConn*, Packet*);
-Packet *vtrpc(VtConn*, Packet*);
Packet*
-vtrpc(VtConn *z, Packet *p)
+_vtrpc(VtConn *z, Packet *p, VtFcall *tx)
{
int i;
uchar tag, buf[2], *top;
qlock(&z->lk);
r->r.l = &z->lk;
tag = gettag(z, r);
+ if(tx){
+ /* vtfcallrpc can't print packet because it doesn't have tag */
+ tx->tag = tag;
+ if(chattyventi)
+ fprint(2, "%s -> %F\n", argv0, tx);
+ }
/* slam tag into packet */
top = packetpeek(p, buf, 0, 2);
return p;
}
+Packet*
+vtrpc(VtConn *z, Packet *p)
+{
+ return _vtrpc(z, p, nil);
+}
+
static int
gettag(VtConn *z, Rwait *r)
{