Module Name:    src
Committed By:   uwe
Date:           Tue May 26 22:54:43 UTC 2020

Modified Files:
        src/usr.sbin/puffs/mount_9p: ninepuffs.h node.c

Log Message:
Use the typedef to declare tag in AUTOVAR.  Do not allocate 9P tags in
advance in AUTOVAR, do it right before we need them.  Do no reuse tags.
If we are going to use sequential tags, we might as well try to make
them really sequential.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/usr.sbin/puffs/mount_9p/ninepuffs.h
cvs rdiff -u -r1.24 -r1.25 src/usr.sbin/puffs/mount_9p/node.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/puffs/mount_9p/ninepuffs.h
diff -u src/usr.sbin/puffs/mount_9p/ninepuffs.h:1.15 src/usr.sbin/puffs/mount_9p/ninepuffs.h:1.16
--- src/usr.sbin/puffs/mount_9p/ninepuffs.h:1.15	Mon Oct 28 02:59:25 2019
+++ src/usr.sbin/puffs/mount_9p/ninepuffs.h	Tue May 26 22:54:43 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ninepuffs.h,v 1.15 2019/10/28 02:59:25 ozaki-r Exp $	*/
+/*	$NetBSD: ninepuffs.h,v 1.16 2020/05/26 22:54:43 uwe Exp $	*/
 
 /*
  * Copyright (c) 2007  Antti Kantee.  All Rights Reserved.
@@ -64,7 +64,7 @@ typedef uint32_t p9pfid_t;
 #define AUTOVAR(pu)							\
 	struct puffs_cc *pcc = puffs_cc_getcc(pu);			\
 	struct puffs9p *p9p = puffs_getspecific(pu);			\
-	uint16_t tag = NEXTTAG(p9p);					\
+	p9ptag_t tag;							\
 	struct puffs_framebuf *pb = p9pbuf_makeout();			\
 	int rv = 0
 

Index: src/usr.sbin/puffs/mount_9p/node.c
diff -u src/usr.sbin/puffs/mount_9p/node.c:1.24 src/usr.sbin/puffs/mount_9p/node.c:1.25
--- src/usr.sbin/puffs/mount_9p/node.c:1.24	Tue May 26 22:08:11 2020
+++ src/usr.sbin/puffs/mount_9p/node.c	Tue May 26 22:54:43 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: node.c,v 1.24 2020/05/26 22:08:11 uwe Exp $	*/
+/*	$NetBSD: node.c,v 1.25 2020/05/26 22:54:43 uwe Exp $	*/
 
 /*
  * Copyright (c) 2007  Antti Kantee.  All Rights Reserved.
@@ -27,7 +27,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: node.c,v 1.24 2020/05/26 22:08:11 uwe Exp $");
+__RCSID("$NetBSD: node.c,v 1.25 2020/05/26 22:54:43 uwe Exp $");
 #endif /* !lint */
 
 #include <assert.h>
@@ -57,6 +57,7 @@ do_getattr(struct puffs_usermount *pu, s
 	AUTOVAR(pu);
 	struct p9pnode *p9n = pn->pn_data;
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_STAT);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, p9n->fid_base);
@@ -97,6 +98,7 @@ puffs9p_node_lookup(struct puffs_usermou
 	struct qid9p newqid;
 	uint16_t nqid;
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_WALK);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, p9n_dir->fid_base);
@@ -232,6 +234,7 @@ puffs9p_node_setattr(struct puffs_usermo
 	struct puffs_node *pn = opc;
 	struct p9pnode *p9n = pn->pn_data;
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_WSTAT);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, p9n->fid_base);
@@ -327,6 +330,7 @@ puffs9p_node_read(struct puffs_usermount
 
 	nread = 0;
 	while (*resid > 0 && (uint64_t)(offset+nread) < pn->pn_va.va_size) {
+		tag = NEXTTAG(p9p);
 		p9pbuf_put_1(pb, P9PROTO_T_READ);
 		p9pbuf_put_2(pb, tag);
 		p9pbuf_put_4(pb, p9n->fid_read);
@@ -374,6 +378,7 @@ puffs9p_node_write(struct puffs_usermoun
 	while (*resid > 0) {
 		chunk = MIN(*resid, p9p->maxreq-32);
 
+		tag = NEXTTAG(p9p);
 		p9pbuf_put_1(pb, P9PROTO_T_WRITE);
 		p9pbuf_put_2(pb, tag);
 		p9pbuf_put_4(pb, p9n->fid_write);
@@ -425,6 +430,7 @@ nodecreate(struct puffs_usermount *pu, s
 	if (rv)
 		goto out;
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_CREATE);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, nfid);
@@ -448,6 +454,7 @@ nodecreate(struct puffs_usermount *pu, s
 	nfid = NEXTFID(p9p);
 
 	p9pbuf_recycleout(pb);
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_WALK);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, p9n->fid_base);
@@ -506,6 +513,7 @@ noderemove(struct puffs_usermount *pu, s
 	if (rv)
 		goto out;
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_REMOVE);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, testfid);
@@ -583,6 +591,7 @@ puffs9p_node_rename(struct puffs_usermou
 			goto out;
 	}
 
+	tag = NEXTTAG(p9p);
 	p9pbuf_put_1(pb, P9PROTO_T_WSTAT);
 	p9pbuf_put_2(pb, tag);
 	p9pbuf_put_4(pb, p9n_src->fid_base);

Reply via email to