DragonFly BSD
DragonFly submit List (threaded) for 2009-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Verbosity Patch for mount_hammer


From: Jan Lentfer <Jan.Lentfer@xxxxxx>
Date: Wed, 21 Oct 2009 21:11:58 +0200

Hi,

attached is a patch to increase verbosity of error messages for mount_hammer. Also this is preparation for actually testing each supplied device for mounting if it contains a valid hammer fs. Since you can mount numerous devices onto one mountpoint it might be helpful to actually know wich of the xx devices you typed on the commandline actually prevented a successful mount.

Kind Regards,

Jan

PS: My first C coding in years, please be gentle :-)
--- mount_hammer.c_orig	2009-10-21 11:27:24 +0200
+++ mount_hammer.c	2009-10-21 13:18:15 +0200
@@ -39,7 +39,9 @@
 #include <sys/diskmbr.h>
 #include <sys/stat.h>
 #include <sys/time.h>
+#include <sys/syslimits.h>
 #include <vfs/hammer/hammer_mount.h>
+#include <vfs/hammer/hammer_disk.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -81,8 +83,10 @@
 	int error;
 	int ch;
 	int init_flags = 0;
+	int ax;
 	char *mountpt;
 	char *ptr;
+	char fdevs[PATH_MAX*HAMMER_MAX_VOLUMES+PATH_MAX-1]; /* this is ugly, memory should be allocated dynamically */
 
 	bzero(&info, sizeof(info));
 	info.asof = 0;
@@ -138,7 +142,7 @@
 		}
 		mountpt = av[0];
 		if (mount(vfc.vfc_name, mountpt, mount_flags, &info))
-			err(1, NULL);
+			err(1, "mountpoint %s", mountpt);
 		exit(0);
 	}
 
@@ -167,8 +171,16 @@
 	if (error)
 		errx(1, "hammer filesystem is not available");
 
-	if (mount(vfc.vfc_name, mountpt, mount_flags, &info))
-		err(1, NULL);
+
+	if (mount(vfc.vfc_name, mountpt, mount_flags, &info)) {
+		/* Build fdevs in case of error to report failed devices */
+		for (ax = 0; ax < ac - 1; ax++) {
+			strlcat(fdevs, info.volumes[ax], sizeof(fdevs));
+			if (ax < ac - 2)
+			strlcat(fdevs, " ", sizeof(fdevs));
+		}
+		err(1,"mount %s on %s", fdevs, mountpt) ;
+	}
 	exit(0);
 }
 


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]