code: mafs

Download patch

ref: d51673903684ef948787a209a7e48acf92e6a745
parent: 22ba05cbfc93fb8fe75f8504e30e13db1423e1b0
author: 9ferno <gophone2015@gmail.com>
date: Fri Dec 2 12:01:35 EST 2022

updated to work for the second scenario

--- a/blk.c
+++ b/blk.c
@@ -118,6 +118,15 @@
 		fprint(fd, "unknown tag type %d\n", tag);
 }
 
+/*
+	0		1	latest
+	------------------
+1.	0		255		0
+2.	255		0		1
+3.		>=			0
+4.		<			1
+
+ */
 u8
 recentmetadata(void *buf, void **cur, void **new)
 {
@@ -127,15 +136,23 @@
 		panic("recentmetadata buf == nil\n");
 
 	ms = buf;
-	if((ms[0].verd == 0 && ms[1].verd == 255) ||
-		(ms[0].verd >= ms[1].verd)){
-		if(new != nil)
-			*new = ms+1;
-		if(cur != nil)
-			*cur = ms;
-		return 0;
-	}
+	if(ms[0].verd == 0 && ms[1].verd == 255)
+		goto Use0;
+	else if(ms[0].verd == 255 && ms[1].verd == 0)
+		goto Use1;
+	else if(ms[0].verd >= ms[1].verd)
+		goto Use0;
+	else
+		goto Use1;
 
+Use0:
+	if(new != nil)
+		*new = ms+1;
+	if(cur != nil)
+		*cur = ms;
+	return 0;
+
+Use1:
 	if(new != nil)
 		*new = ms;
 	if(cur != nil)