shithub: gefs

Download patch

ref: 40726771923925e566f65389a8d09fd5932a47d0
parent: 9d215d5af232112242d17641304c037d16cd0290
author: Ori Bernstein <ori@eigenstate.org>
date: Sat Oct 22 15:42:29 EDT 2022

fs: handle flushes immediately

don't dispatch them to the reader thread; they're
not reader operations.

--- a/fs.c
+++ b/fs.c
@@ -1888,7 +1888,8 @@
 		/* sync setup */
 		case Tversion:	fsversion(m);	break;
 		case Tauth:	fsauth(m);	break;
-		case Tclunk:	fsclunk(m);		break;
+		case Tclunk:	fsclunk(m);	break;
+		case Tflush:	fsflush(m);	break;
 
 		/* mutators */
 		case Tcreate:	chsend(fs->wrchan, m);	break;
@@ -1898,7 +1899,6 @@
 
 		/* reads */
 		case Tattach:	chsend(fs->rdchan, m);	break;
-		case Tflush:	chsend(fs->rdchan, m);	break;
 		case Twalk:	chsend(fs->rdchan, m);	break;
 		case Tread:	chsend(fs->rdchan, m);	break;
 		case Tstat:	chsend(fs->rdchan, m);	break;
@@ -1983,7 +1983,6 @@
 		m = chrecv(fs->rdchan, 1);
 		epochstart(wid);
 		switch(m->type){
-		case Tflush:	rerror(m, Eimpl);	break;
 		case Tattach:	fsattach(m);	break;
 		case Twalk:	fswalk(m);	break;
 		case Tread:	fsread(m);	break;