shithub: gefs

Download patch

ref: f0de08f79d1d6931c3829f4ad33818de5479b283
parent: 5943b07c27555189a92fbed56893483190f79601
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Nov 12 17:50:02 EST 2023

fs: don't start epoch in dispatcher

we can't access a tree, and we can block arbitrarily on
flushing; this is a bad idea.

--- a/fs.c
+++ b/fs.c
@@ -2105,9 +2105,8 @@
 		}
 
 		h = ihash(m->fid) % fs->nreaders;
-		epochstart(id);
 		switch(m->type){
-		/* sync setup */
+		/* sync setup, must not access tree */
 		case Tversion:	fsversion(m);	break;
 		case Tauth:	fsauth(m);	break;
 		case Tclunk:	fsclunk(m);	break;
@@ -2141,7 +2140,6 @@
 			respond(m, &r);
 			break;
 		}
-		epochend(id);
 	}
 }