svn commit: r224488 - stable/8/sbin/dumpfs

Xin LI delphij at FreeBSD.org
Fri Jul 29 06:15:19 UTC 2011


Author: delphij
Date: Fri Jul 29 06:15:18 2011
New Revision: 224488
URL: http://svn.freebsd.org/changeset/base/224488

Log:
  MFC rr224004,224025:
  
  Add a -l option to show file system's corresponding /dev/ufsid path.
  This is useful for scripts that converts existing system's fstab to
  use their /dev/ufsid devices.

Modified:
  stable/8/sbin/dumpfs/dumpfs.8
  stable/8/sbin/dumpfs/dumpfs.c
Directory Properties:
  stable/8/sbin/dumpfs/   (props changed)

Modified: stable/8/sbin/dumpfs/dumpfs.8
==============================================================================
--- stable/8/sbin/dumpfs/dumpfs.8	Thu Jul 28 21:00:46 2011	(r224487)
+++ stable/8/sbin/dumpfs/dumpfs.8	Fri Jul 29 06:15:18 2011	(r224488)
@@ -28,7 +28,7 @@
 .\"     @(#)dumpfs.8	8.1 (Berkeley) 6/5/93
 .\" $FreeBSD$
 .\"
-.Dd January 28, 2009
+.Dd Jul 14, 2011
 .Dt DUMPFS 8
 .Os
 .Sh NAME
@@ -37,6 +37,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl f
+.Op Fl l
 .Op Fl m
 .Ar filesys | device
 .Sh DESCRIPTION
@@ -44,7 +45,8 @@ The
 .Nm
 utility prints out the super block and cylinder group information
 for the file system or special device specified, unless the
-.Fl f
+.Fl f ,
+.Fl l
 or
 .Fl m
 flag is specified.
@@ -64,6 +66,11 @@ Fragment numbers may be converted to raw
 fragment size, which may be useful when recovering deleted data.
 .Pp
 If
+.Fl l
+is specified, the pathname to the file system's container derived from
+its unique identifier is printed.
+.Pp
+If
 .Fl m
 is specified, a
 .Xr newfs 8

Modified: stable/8/sbin/dumpfs/dumpfs.c
==============================================================================
--- stable/8/sbin/dumpfs/dumpfs.c	Thu Jul 28 21:00:46 2011	(r224487)
+++ stable/8/sbin/dumpfs/dumpfs.c	Fri Jul 29 06:15:18 2011	(r224488)
@@ -68,6 +68,7 @@ static const char rcsid[] =
 #include <fcntl.h>
 #include <fstab.h>
 #include <libufs.h>
+#include <paths.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -79,6 +80,7 @@ static const char rcsid[] =
 struct uufsd disk;
 
 int	dumpfs(const char *);
+int	dumpfsid(void);
 int	dumpcg(void);
 int	dumpfreespace(const char *, int);
 void	dumpfreespacecg(int);
@@ -92,11 +94,11 @@ int
 main(int argc, char *argv[])
 {
 	const char *name;
-	int ch, dofreespace, domarshal, eval;
+	int ch, dofreespace, domarshal, dolabel, eval;
 
-	dofreespace = domarshal = eval = 0;
+	dofreespace = domarshal = dolabel = eval = 0;
 
-	while ((ch = getopt(argc, argv, "fm")) != -1) {
+	while ((ch = getopt(argc, argv, "lfm")) != -1) {
 		switch (ch) {
 		case 'f':
 			dofreespace++;
@@ -104,6 +106,9 @@ main(int argc, char *argv[])
 		case 'm':
 			domarshal = 1;
 			break;
+		case 'l':
+			dolabel = 1;
+			break;
 		case '?':
 		default:
 			usage();
@@ -129,6 +134,8 @@ main(int argc, char *argv[])
 			eval |= dumpfreespace(name, dofreespace);
 		else if (domarshal)
 			eval |= marshal(name);
+		else if (dolabel)
+			eval |= dumpfsid();
 		else
 			eval |= dumpfs(name);
 		ufs_disk_close(&disk);
@@ -137,6 +144,14 @@ main(int argc, char *argv[])
 }
 
 int
+dumpfsid(void)
+{
+
+	printf("%sufsid/%08x%08x\n", _PATH_DEV, afs.fs_id[0], afs.fs_id[1]);
+	return 0;
+}
+
+int
 dumpfs(const char *name)
 {
 	time_t fstime;


More information about the svn-src-stable mailing list