shithub: ext4srv

Download patch

ref: 2b169371d00965ad627313ec87c40c958764d863
parent: 73faa8daef1b19a4023d143bbd8f25c5b54d18ee
author: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun Nov 15 17:14:45 EST 2020

add "df" alias for "stats"; add "sync" command

--- a/common.h
+++ b/common.h
@@ -48,5 +48,6 @@
 void closepart(Part *p);
 void closeallparts(void);
 void statallparts(void);
+void syncallparts(void);
 
 char *errno2s(int err);
--- a/ext4srv.c
+++ b/ext4srv.c
@@ -883,12 +883,14 @@
 		if((n = tokenize(c, a, nelem(a))) < 1)
 			continue;
 		USED(n);
-		if(strcmp(a[0], "stats") == 0){
+		if(strcmp(a[0], "stats") == 0 || strcmp(a[0], "df") == 0){
 			statallparts();
 		}else if(strcmp(a[0], "halt") == 0){
 			closeallparts();
 			close(0);
 			threadexitsall(nil);
+		}else if(strcmp(a[0], "sync") == 0){
+			syncallparts();
 		}else{
 			print("unknown command: %s\n", a[0]);
 		}
--- a/part.c
+++ b/part.c
@@ -442,3 +442,17 @@
 	}
 	qunlock(&sv);
 }
+
+void
+syncallparts(void)
+{
+	Part *p;
+	int r;
+
+	qlock(&sv);
+	for(p = sv.ps; p != nil; p = p->next){
+		if((r = ext4_cache_flush(p->mnt)) != 0)
+			print("error: %s: %s\n", p->partdev, errno2s(r));
+	}
+	qunlock(&sv);
+}