From e9d363c27b8c013ad25891d28909b39b0ea1cff3 Mon Sep 17 00:00:00 2001
From: Alberto Bertogli <albertito@blitiri.com.ar>
Date: Sun, 2 Aug 2009 04:00:58 -0300
Subject: [PATCH 68/74] jiofsck: Handle all possible jfsck() return values

Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
 libjio/jiofsck.c |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/libjio/jiofsck.c b/libjio/jiofsck.c
index 48fc084..217cd54 100644
--- a/libjio/jiofsck.c
+++ b/libjio/jiofsck.c
@@ -66,17 +66,32 @@ int main(int argc, char **argv)
 	fflush(stdout);
 	rv = jfsck(file, jdir, &res, flags);
 
-	if (rv == J_ENOENT) {
+	switch (rv) {
+	case J_ESUCCESS:
+		printf("done\n");
+		break;
+	case J_ENOENT:
 		printf("No such file or directory\n");
 		return 1;
-	} else if (rv == J_ENOJOURNAL) {
+	case J_ENOJOURNAL:
 		printf("No journal associated to the file, "
 				"or journal empty\n");
 		return 1;
+	case J_ENOMEM:
+		printf("Not enough memory\n");
+		return 1;
+	case J_ECLEANUP:
+		printf("Error cleaning up the journal directory\n");
+		return 1;
+	case J_EIO:
+		printf("I/O error\n");
+		perror("  additional information");
+		return 1;
+	default:
+		printf("Unknown result, please report as a bug\n");
+		return 1;
 	}
 
-	printf("done\n");
-
 	printf("Journal checking results\n");
 	printf("------------------------\n\n");
 
@@ -88,11 +103,8 @@ int main(int argc, char **argv)
 	printf("Reapplied:\t %d\n", res.reapplied);
 	printf("\n");
 
-	if (!do_cleanup) {
-		printf("You can now safely remove the journal directory "
-				"completely\nto start a new journal.\n");
-	} else {
-		printf("The journal has been checked and cleaned up.\n");
+	if (do_cleanup) {
+		printf("The journal has been cleaned up.\n");
 	}
 
 	return 0;
-- 
1.6.2.2.646.gb214


