History log of /freebsd-10.1-release/sbin/dumpfs/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


250710 16-May-2013 mckusick

When running the -m option to generate a newfs(8) command suitable for
recreating the filesystem, check for and output the -i, -k, and -l
options if appropriate.

Note the remaining deficiencies of the -m option in the dumpfs(8)
manual page. Specifically that newfs(8) options -E, -R, -S, and -T
options are not handled and that -p is not useful so is omitted.
Also document that newfs(8) options -n and -r are neither checked
for nor output but should be. The -r flag is needed if the filesystem
uses gjournal(8).

PR: bin/163992
Reported by: Dieter <freebsd@sopwith.solgatos.com>
Submitted by: Andy Kosela <akosela@andykosela.com>
MFC after: 1 week


250708 16-May-2013 mckusick

Clean up trailing whitespace.

Submitted by: Andy Kosela
MFC after: 1 week


248623 22-Mar-2013 mckusick

The purpose of this change to the FFS layout policy is to reduce the
running time for a full fsck. It also reduces the random access time
for large files and speeds the traversal time for directory tree walks.

The key idea is to reserve a small area in each cylinder group
immediately following the inode blocks for the use of metadata,
specifically indirect blocks and directory contents. The new policy
is to preferentially place metadata in the metadata area and
everything else in the blocks that follow the metadata area.

The size of this area can be set when creating a filesystem using
newfs(8) or changed in an existing filesystem using tunefs(8).
Both utilities use the `-k held-for-metadata-blocks' option to
specify the amount of space to be held for metadata blocks in each
cylinder group. By default, newfs(8) sets this area to half of
minfree (typically 4% of the data area).

This work was inspired by a paper presented at Usenix's FAST '13:
www.usenix.org/conference/fast13/ffsck-fast-file-system-checker

Details of this implementation appears in the April 2013 of ;login:
www.usenix.org/publications/login/april-2013-volume-38-number-2.
A copy of the April 2013 ;login: paper can also be downloaded
from: www.mckusick.com/publications/faster_fsck.pdf.

Reviewed by: kib
Tested by: Peter Holm
MFC after: 4 weeks


242379 30-Oct-2012 trasz

Fix problem with geom_label(4) not recognizing UFS labels on filesystems
extended using growfs(8). The problem here is that geom_label checks if
the filesystem size recorded in UFS superblock is equal to the provider
(i.e. device) size. This check cannot be removed due to backward
compatibility. On the other hand, in most cases growfs(8) cannot set
fs_size in the superblock to match the provider size, because, differently
from newfs(8), it cannot recompute cylinder group sizes.

To fix this problem, add another superblock field, fs_providersize, used
only for this purpose. The geom_label(4) will attach if either fs_size
(filesystem created with newfs(8)) or fs_providersize (filesystem expanded
using growfs(8)) matches the device size.

PR: kern/165962
Reviewed by: mckusick
Sponsored by: FreeBSD Foundation


241842 22-Oct-2012 eadler

Add support for gjournal to dumpfs

PR: 165821
Submitted by: Andreas Longwitz <longwitz@incore.de>
Approved by: cperciva
MFC after: 3 days


228898 26-Dec-2011 brueffer

Add missing -l flag to usage().

PR: 163629
Submitted by: olgeni
MFC after: 1 week


228458 13-Dec-2011 ed

Staticify dumpfs.

This tool only consists of a single C file, so we can simply mark
everything except main() static. This seems to shave off about 8% of the
binary size.


227081 04-Nov-2011 ed

Add missing static keywords for global variables to tools in sbin/.

These tools declare global variables without using the static keyword,
even though their use is limited to a single C-file, or without placing
an extern declaration of them in the proper header file.


224025 14-Jul-2011 delphij

Use _PATH_DEV and make the format more consistent with GEOM_LABEL.

Submitted by: ivoras


224004 14-Jul-2011 delphij

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.

MFC after: 2 weeks


221659 08-May-2011 gavin

We now have multiple filesystems (UFS, ZFS, ...), so for tools that only
operate on one type of filesystem, mention this.
While here, capitalise the use of "UFS" in growfs.8 to match other uses of
the term in other man pages.

MFC after: 1 week


219899 23-Mar-2011 jmallett

Add support for displaying newfs flags for SU+J and TRIM.


216798 29-Dec-2010 kib

Add support for FS_TRIM to user-mode UFS utilities.

Reviewed by: mckusick, pjd, pho
Tested by: pho
MFC after: 1 month


207141 24-Apr-2010 jeff

- Merge soft-updates journaling from projects/suj/head into head. This
brings in support for an optional intent log which eliminates the need
for background fsck on unclean shutdown.

Sponsored by: iXsystems, Yahoo!, and Juniper.
With help from: McKusick and Peter Holm


201647 06-Jan-2010 gavin

Print leading zeros in the UFS2 FSID.

PR: bin/142155
Submitted by: Efstratios Karatzas gpf.kira gmail.com
Approved by: ed (mentor)
MFC after: 2 weeks


200796 21-Dec-2009 trasz

Implement NFSv4 ACL support for UFS.

Reviewed by: rwatson


198236 19-Oct-2009 ru

Switch the default WARNS level for sbin/ to 6.

Submitted by: Ulrich Spörlein


198231 19-Oct-2009 ru

Properly re-create "-s size" argument to newfs(8).


187820 28-Jan-2009 rwatson

Print disk offets as %jd rather than %lld; I fixed one before committing
but missed the other, which breaks 64-bit builds.

Reported by: bf <bf2006a at yahoo dot com>
MFC after: 1 week


187818 28-Jan-2009 trhodes

Bump doc date for recent change.


187814 28-Jan-2009 rwatson

Add a new flag to dumpfs(8), -f, which causes dumpfs to list all free
fragments in the file system by fragment (block) number. This new
mode does the necessary arithmetic to generate absolute fragment
numbers rather than than the cg-relative numbers printed in the default
mode.

If -f is passed once, contiguous fragment ranges are collapsed into
an X-Y format as free block lists are currently printed in regular
dumpfs output, but if specified twice, all block numbers are printed
individually, allowing both compact and more script-friendly
representation.

This proves quite handy when attempting to recover deleted data, as it
allows exclusion of non-deleted data from blocks searched.
MFC after: 1 week
Discussed with: jeff, Richard Clayton <richard dot clayton at cl.cam.ac.uk>
Sponsored by: Google, Inc.


169511 12-May-2007 pav

Replace incomprehensive description of -m by much clearer text from OpenBSD,
with the exception of one word.

PR: docs/112465
Submitted by: naddy
Obtained from: OpenBSD
MFC after: 1 week


163844 31-Oct-2006 pjd

Teach about new fields (cg_unrefs and fs_unrefs) and new FS_GJOURNAL flag.

Sponsored by: home.pl


141611 10-Feb-2005 ru

Sync program's usage() with manpage's SYNOPSIS.


131488 02-Jul-2004 ru

Mechanically kill hard sentence breaks.


128073 09-Apr-2004 markm

Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core, imp


123219 07-Dec-2003 truckman

Reinstate 1.40 -- swap avgfilesize and avgfpdir column order.

MFC after: 3 days


123079 01-Dec-2003 truckman

I forgot about the code freeze, so back this out.


123078 01-Dec-2003 truckman

Swap avgfilesize and avgfpdir order to give better column alignment.


122825 17-Nov-2003 truckman

Print the dirpref avgfilesize and avgfpdir parameters.

MFC after: 2 weeks


122670 14-Nov-2003 johan

Make this WARNS=2 clean by
- using (intmax_t) and %j instead of %q

Tested by: make universe


116083 09-Jun-2003 jmallett

Marshal newfs -L (filesystem volume names), the names are not marshalled
with any quoting, but that should be OK for re-input, regardless.


111285 23-Feb-2003 ru

mdoc(7) police: markup laundry.


110884 14-Feb-2003 mckusick

Correct lines incorrectly added to the copyright message. Add missing period.

Submitted by: Bruce Evans <bde@zeta.org.au>
Sponsored by: DARPA & NAI Labs.


110174 01-Feb-2003 gordon

Bring in support for volume labels to the filesystem utilities.

Reviewed by: mckusick


109883 26-Jan-2003 ru

Spell libufs correctly in DPADD.

Reviewed by: juli


109767 24-Jan-2003 njl

Parse both old flags location and new one. Print out new flags including
acls, multilabel, and location updated.


109599 20-Jan-2003 jmallett

Add libufs to dependencies.


109532 19-Jan-2003 jmallett

Kill initialisation and shadow warnings. Half-hearted cleanup (e.g. only the
more important ones) of format warnings. XXX Lots of this assumes int32 can
be printed with %d. Yuck.

Reviewed by: bde


109525 19-Jan-2003 jmallett

Add support to marshal a filesystem to a newfs(8) command that could be used
to create it. A small number of options are not marshalled as they are things
it would be dumb to spit out, as they are used by internal computations, and
newfs may change them, or they may not be directly apparent.


109519 19-Jan-2003 jmallett

Let libufs handle all the work with regard to going through a list of cgs, now.


109510 19-Jan-2003 jmallett

Use libufs to read one cylinder group from the disk at a time.


109507 19-Jan-2003 jmallett

Simplify the main function now that libufs will hunt for the disk for us.


109461 18-Jan-2003 jmallett

Simplify conditional.


107294 27-Nov-2002 mckusick

Create a new 32-bit fs_flags word in the superblock. Add code to move
the old 8-bit fs_old_flags to the new location the first time that the
filesystem is mounted by a new kernel. One of the unused flags in
fs_old_flags is used to indicate that the flags have been moved.
Leave the fs_old_flags word intact so that it will work properly if
used on an old kernel.

Change the fs_sblockloc superblock location field to be in units
of bytes instead of in units of filesystem fragments. The old units
did not work properly when the fragment size exceeeded the superblock
size (8192). Update old fs_sblockloc values at the same time that
the flags are moved.

Suggested by: BOUWSMA Barry <freebsd-misuser@netscum.dyndns.dk>
Sponsored by: DARPA & NAI Labs.


107031 17-Nov-2002 peter

Deal with the possibility that time_t != int32_t. Otherwise ia64 thought
the fs_old_size was the half part of fs_old_time etc.


106456 05-Nov-2002 jmallett

Use more non-b0rked error reporting. Print the disk we are trying to open
and (we have the disk error from libufs? the disk error: the errno).

Requested by: bde, <many>


105741 22-Oct-2002 jmallett

Forgot to include <errno.h> when using 'errno' here.


105739 22-Oct-2002 jmallett

When errno is not set, do not use warn(3).


105738 22-Oct-2002 jmallett

Use the libufs_printerror() function, which hopefully will deconfuse users
getting error cases in a libufsificated dumpfs(8).

Poked by: kkenn


102231 21-Aug-2002 trhodes

s/filesystem/file system/g as discussed on -developers


101688 11-Aug-2002 jmallett

Simplify some things to use libufs-provided functionality here, such as the
version of UFS on a disk, and bread() instead of other types of idiocy.

Obtained from: jmallett_libufs Perforce branch.


99827 11-Jul-2002 jmallett

Remove unused variables due to libufs(3) commit. Clean up extraneous use of
semicolon at closing paren of a function body.


99826 11-Jul-2002 jmallett

Convert dumpfs(8) to libufs(3), rather than rolling local functions for a
number of things.


99501 06-Jul-2002 charnier

The .Nm utility


98542 21-Jun-2002 mckusick

This commit adds basic support for the UFS2 filesystem. The UFS2
filesystem expands the inode to 256 bytes to make space for 64-bit
block pointers. It also adds a file-creation time field, an ability
to use jumbo blocks per inode to allow extent like pointer density,
and space for extended attributes (up to twice the filesystem block
size worth of attributes, e.g., on a 16K filesystem, there is space
for 32K of attributes). UFS2 fully supports and runs existing UFS1
filesystems. New filesystems built using newfs can be built in either
UFS1 or UFS2 format using the -O option. In this commit UFS1 is
the default format, so if you want to build UFS2 format filesystems,
you must specify -O 2. This default will be changed to UFS2 when
UFS2 proves itself to be stable. In this commit the boot code for
reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c)
as there is insufficient space in the boot block. Once the size of the
boot block is increased, this code can be defined.

Things to note: the definition of SBSIZE has changed to SBLOCKSIZE.
The header file <ufs/ufs/dinode.h> must be included before
<ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and
ufs_lbn_t.

Still TODO:
Verify that the first level bootstraps work for all the architectures.
Convert the utility ffsinfo to understand UFS2 and test growfs.
Add support for the extended attribute storage. Update soft updates
to ensure integrity of extended attribute storage. Switch the
current extended attribute interfaces to use the extended attribute
storage. Add the extent like functionality (framework is there,
but is currently never used).

Sponsored by: DARPA & NAI Labs.
Reviewed by: Poul-Henning Kamp <phk@freebsd.org>


96707 16-May-2002 trhodes

more file system > filesystem


96478 12-May-2002 phk

Sigh, more BBSIZE related breakage.

Sponsored by: DARPA & NAI Labs.


92839 20-Mar-2002 imp

o __P removed
o ansi function prototypes
o unifdef -D__STDC__
o __dead2 on usage prototype
o remove now-bogus main prototype


92806 20-Mar-2002 obrien

Remove 'register' keyword.
It does not help modern compilers, and some may take some hit from it.
(I also found several functions that listed *every* of its 10 local vars with
"register" -- just how many free registers do people think machines have?)


87325 04-Dec-2001 obrien

Default to WARNS=2.
Binary builds that cannot handle this must explicitly set WARNS=0.

Reviewed by: mike


79530 10-Jul-2001 ru

mdoc(7) police: removed HISTORY info from the .Os call.


74815 26-Mar-2001 ru

- Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.


74531 20-Mar-2001 ru

Set the default manual section for sbin/ to 8.


71073 15-Jan-2001 iedowse

The ffs superblock includes a 128-byte region for use by temporary
in-core pointers to summary information. An array in this region
(fs_csp) could overflow on filesystems with a very large number of
cylinder groups (~16000 on i386 with 8k blocks). When this happens,
other fields in the superblock get corrupted, and fsck refuses to
check the filesystem.

Solve this problem by replacing the fs_csp array in 'struct fs'
with a single pointer, and add padding to keep the length of the
128-byte region fixed. Update the kernel and userland utilities
to use just this single pointer.

With this change, the kernel no longer makes use of the superblock
fields 'fs_csshift' and 'fs_csmask'. Add a comment to newfs/mkfs.c
to indicate that these fields must be calculated for compatibility
with older kernels.

Reviewed by: mckusick


68960 20-Nov-2000 ru

mdoc(7) police: use the new features of the Nm macro.


50476 28-Aug-1999 peter

$Id$ -> $FreeBSD$


48875 18-Jul-1999 mpp

Print out the fields that are set in fs_flags.


48271 27-Jun-1999 phk

Print out the fs_id field.


36998 15-Jun-1998 charnier

Add rcsid. Remove unused #includes.


35341 20-Apr-1998 rnordier

Check bytes read to prevent random error message.


27081 29-Jun-1997 bde

Print fs_maxfilesize.


24346 28-Mar-1997 peter

Make this compile after the fsirand changes that deleted two fields.
I was not sure whether the fs_id fields should be printed in the clear
in case of sniffing over a network login etc. It might be an idea
to have somebody with spare time go through and find any other missing
fields that should be reported.

Definate 2.2.x/2.1.x candidate since it breaks the build.


23673 11-Mar-1997 peter

Merge from Lite2


22990 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


21635 13-Jan-1997 wosch

Sort cross references.


19074 21-Oct-1996 phk

dumpfs blindly trusts that it has been handed a filesystem.
If the magic is bad, don't waste our time.

Submitted by: Giles Lean Giles Lean <giles@nemeton.com.au>
Obtained from: NetBSD PR bin/249


16603 23-Jun-1996 peter

Fix a couple of bogus casts to off_t that caused dumpfs to lseek negative
on filesystems > 2GB (which causes the disk slice code to call Debugger!!)


3270 01-Oct-1994 dg

Corrected message when no rotational position table is found.


2154 20-Aug-1994 dg

Added a "clean" field to the output - to show the state of the clean flag.


1855 05-Aug-1994 wollman

Convert to our man installation style. Also fixed long-standing bug
in `fastboot'/`fasthalt' in which the interpreter would hang around
after `reboot' or `halt' is run, causing an irritating ``Killed'' message.


1559 26-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1558,
which included commits to RCS files with non-trunk default branches.