shithub: gefs

Download patch

ref: 736cb14cb5327a57d21beb27f028ff2e39bc1342
parent: d7be09a034257bf26b5b8d5faaa6da05f92f805a
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Oct 15 20:00:11 EDT 2023

qgen: set queue generation when enqueuing

makes it harder to forget to set it, eg, when
enqueueing a flush block.

--- a/blk.c
+++ b/blk.c
@@ -1010,7 +1010,6 @@
 			qe.op = Qfree;
 			qe.bp = p->bp;
 			qe.b = nil;
-			qe.qgen = agetv(&fs->qgen);
 			qput(a->sync, qe);
 			if(p->b != nil){
 				setflag(p->b, Bfreed);
@@ -1037,7 +1036,6 @@
 	holdblk(b);
 	finalize(b);
 	qe.op = Qwrite;
-	qe.qgen = agetv(&fs->qgen);
 	qe.bp = b->bp;
 	qe.b = b;
 	qput(a->sync, qe);
@@ -1084,6 +1082,7 @@
 			break;
 		q->heap[i] = q->heap[(i-1)/2];
 	}
+	qe.qgen = agetv(&fs->qgen);
 	q->heap[i] = qe;
 	q->nheap++;
 	rwakeup(&q->emptyrz);