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