Commit Graph

105 Commits

Author SHA1 Message Date
Enji Cooper
81a349bad3 MFC r324478:
Check the exit code from fsck_ffs instead of relying on MODIFIED being in the output

^/head@r323923 changed when MODIFIED is printed at exit. It's better to follow the
documented way of determining whether or not a filesystem is clean per fsck_ffs, i.e.,
ensure that the exit code is either 0 or 7.

The pass/fail determination is brittle prior to this commit, and ^/head@r323923 made
the issue apparent -- thus this needs to be fixed independent of ^/head@r323923.

PR:		222780
MFC with:	r323923
2017-10-17 15:49:36 +00:00
Enji Cooper
c06eac9206 MFC r289172,r290254:
r289172:

Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and
netbsd-tests.test.mk (r289151)

- Eliminate explicit OBJTOP/SRCTOP setting
- Convert all ad hoc NetBSD test integration over to netbsd-tests.test.mk
- Remove unnecessary TESTSDIR setting
- Use SRCTOP where possible for clarity

r290254:

Remove unused variable (SRCDIR)
2017-02-09 22:49:48 +00:00
Sevan Janiyan
6b28082ba0 MFC r267667:
use .Mt to mark up email addresses consistently (part1)

PR:		191174
Submitted by:	Franco Fichtner  <franco at lastsummer.de>
2016-10-16 22:02:50 +00:00
Edward Tomasz Napierala
c66676c4b0 MFC r281929:
Fix growfs(8) build with debug enabled (make -DGFSDBG).

Sponsored by:	The FreeBSD Foundation
2015-06-21 06:49:44 +00:00
Edward Tomasz Napierala
cac38b33c3 MFC r274742:
Uniformly refer to a file system as "file system".

Sponsored by:	The FreeBSD Foundation
2014-12-21 11:26:51 +00:00
Edward Tomasz Napierala
b52273ae7c MFC r274741:
Add example on how to use gpart before growfs.  While here, reorder examples
so that the simplest one comes first.

Sponsored by:	The FreeBSD Foundation
2014-12-21 11:25:26 +00:00
Edward Tomasz Napierala
1bcfdb7cb3 MFC r274738:
Document growfs(8) feature apparently nobody knows about.

Sponsored by:	The FreeBSD Foundation
2014-12-21 11:23:59 +00:00
Edward Tomasz Napierala
1d3f3e246d MFC r274737:
Use proper ordering in EXAMPLES section in growfs(8).

Sponsored by:	The FreeBSD Foundation
2014-12-21 11:22:15 +00:00
Julio Merino
b777500d7e MFC various moves of tools/regressions/ tests to the new infrastructure.
- r263220 Migrate tools/regression/sbin/ to the new tests layout.
- r263222 Add Makefile missed in r263220.
- r263226 Migrate tools/regression/{usr.bin/lastcomm,usr.sbin}/ to the new tests layout.
- r263227 Migrate most of tools/regression/usr.bin/ to the new tests layout.
- r263345 Expand tabs that sneaked in into spaces.
- r263346 Migrate tools/regression/usr.bin/make/ to the new tests layout.
- r263348 Add Makefiles missed in r263346.
- r263351 Migrate tools/regression/usr.bin/pkill/ to the new tests layout.
- r263388 Mark multi_test as requiring /usr/share/dict/words.
- r263814 Fix path to the run.pl script to let these tests run.
- r264742 Prevent building tests when bootstrapping make.

This is 'make tinderbox' clean.
2014-04-27 01:15:10 +00:00
Christian Brueffer
e1a337e9e5 Refer newfs and growfs users to fsck_ffs instead of
fsck, the latter does not accept the referred to "-b" flag.

PR:		82720
Submitted by:	David D.W. Downey
2014-02-16 10:16:07 +00:00
Pedro F. Giffuni
9ef86601d9 MFC r256448, r257029;
Make di_blocks unsigned in UFS1 as is the case already for UFS2.
 Most of the code between UFS1 and UFS2 is shared so this change
 is pretty safe. Not only this makes UFS1 and 2 consistent but it
 also matches what NetBSD and MacOS X have for some years now.

UFS2: make di_extsize unsigned.
 di_extsize is the EA size and as such it should be unsigned.
 Adjust related types for consistency.

Reviewed by:	mckusick
2013-12-11 19:25:17 +00:00
Eitan Adler
63efd0a107 Allow the use of lowercase 'yes'
PR:		bin/178422
Submitted by:	Garrett Cooper <yaneurabeya@gmail.com>
2013-05-08 18:55:38 +00:00
Xin LI
44246b4c36 Use arc4random() instead of random().
MFC after:	2 weeks
2013-04-15 05:39:21 +00:00
Edward Tomasz Napierala
be1bfa99a4 When growing a filesystem, don't leave unused space at the end
if there is not enough room for a full cylinder group.

Reviewed by:	mckusick@
2012-12-16 14:37:25 +00:00
Edward Tomasz Napierala
cd379aaff1 Fix extending filesystems of weird size by making sure the actual size
is always multiple of fragment size.
2012-12-15 08:53:58 +00:00
Joel Dahl
a8114564bd Remove superfluous paragraph macro. 2012-11-18 19:39:42 +00:00
Edward Tomasz Napierala
2ec1a00656 Make it possible to resize filesystems mounted read-write, using newly
introduced UFS write suspension mechanism.

Reviewed by:	kib, mckusick
Sponsored by:	FreeBSD Foundation
2012-11-18 19:01:00 +00:00
Edward Tomasz Napierala
549f62fa42 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
2012-10-30 21:32:10 +00:00
Matthew D Fleming
e25a029eb2 Fix sbin/ build with a 64-bit ino_t.
Original code by:	Gleb Kurtsou
2012-09-27 23:31:06 +00:00
Eitan Adler
089d61ec12 Remove unneeded variable reported by gcc46 which stopped being used in
r234178.

Approved by:	cperciva
MFC after:	3 days
2012-07-07 17:25:36 +00:00
Joel Dahl
cd92c96215 mdoc: remove redundant paragraph macro. 2012-05-12 14:46:49 +00:00
Edward Tomasz Napierala
deb35287b3 Fix offset calculation to actually rewrite the _last_ block. 2012-05-06 11:48:37 +00:00
Edward Tomasz Napierala
e35497f13b Improve growfs(8) in a few ways; unfortunately, it's somewhat hard to untangle
them and commit separately.

1. Rewrite the way growfs(8) finds the device and mount point.  This makes
   it possible to use e.g. "growfs /mnt"; it's also used to display more
   helpful messages.

2. Be more user-friendly, using descriptive messages, like this:

   OK to grow filesystem on /dev/md0, mounted on /mnt, from 9.8GB to 20GB? [Yes/No]"

3. Allow to specify the size (-s option) just like with mdconfig(8), i.e. with
   postfixes ("mdconfig -s 10g").

4. Reload read-only filesystem after growing.

Reviewed by:	kib, mckusick (earlier version)
Sponsored by:	The FreeBSD Foundation
2012-04-30 16:08:02 +00:00
Edward Tomasz Napierala
91ac147931 Style. 2012-04-18 13:50:17 +00:00
Edward Tomasz Napierala
f979d8ac99 Style. 2012-04-15 15:15:16 +00:00
Edward Tomasz Napierala
b408e19c58 Remove FSIRAND and FSMAXSWAP ifdefs, removing code unconditionally.
Reviewed by:	kib, mckusick
Sponsored by:	The FreeBSD Foundation
2012-04-15 15:13:29 +00:00
Edward Tomasz Napierala
6ad07d53c2 Style. 2012-04-12 16:55:48 +00:00
Edward Tomasz Napierala
9f2d8a3834 Remove block reallocation used to make room for the cylinder group
summary structure.  From now on, when there is no room for it,
we simply allocate new one in a newly added cylinder group.

This patch removes a conditional in updcsloc(), reindents some code
there, and removes unused routines.  I decided to do it this way instead
of disabling reallocation when the filesystem is live and leaving it
as it is otherwise, because this allows for removal of lots of complicated
and hard to test code.  Also, conditionally disabling it would result
in a different layout in filesystems resized online and offline, which
would look somewhat weird.

Reviewed by:		mckusick
No objections from:	kib
Sponsored by:		The FreeBSD Foundation
2012-04-12 13:43:43 +00:00
Edward Tomasz Napierala
50c603c4ec Remove disklabel handling code from growfs. This should be done
via geom_part(4), and it doesn't belong in growfs anyway.

Reviewed by:	kib, mckusick
Sponsored by:	The FreeBSD Foundation
2012-03-29 11:20:19 +00:00
Dimitry Andric
8f061f61db After r232548, clang complains about the apparent '=-' operator (a
left-over from ancient C times, and a frequent typo) in growfs.c:

sbin/growfs/growfs.c:1550:8: error: use of unary operator that may be intended as compound assignment (-=) [-Werror]
        blkno =- 1;
              ^~

Use 'blkno = -1' instead, to silence the error.
2012-03-12 11:15:44 +00:00
Edward Tomasz Napierala
a1da07403e Make growfs(8) mostly style compliant. No functional changes,
verified with MD5.
2012-03-05 16:37:51 +00:00
Ed Schouten
11dc480601 Allow growfs to be built with GCC 4.7 and -Werror.
The dp1 variable is only used when FSIRAND is defined. Just place the
variable behind #ifdefs entirely.
2012-01-17 22:19:35 +00:00
Ed Schouten
1efe3c6b58 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.
2011-11-04 13:36:02 +00:00
Edward Tomasz Napierala
8857bdbc59 Revert the mechanical change from 'file system' to 'filesystem', committed
in r223429.  As bde@ pointed out, it was mostly backwards.
2011-06-28 19:59:46 +00:00
Edward Tomasz Napierala
b2168df843 Cosmetic fixes; mostly s/file system/filesystem/g and removing weird indent
from messages.
2011-06-22 17:59:53 +00:00
Gavin Atkinson
275e1cf79b 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
2011-05-08 12:34:31 +00:00
Rebecca Cran
974206cf70 Fix typos - remove duplicate "is".
PR:		docs/154934
Submitted by:	Eitan Adler <lists at eitanadler.com>
MFC after:	3 days
2011-02-23 09:22:33 +00:00
Marcel Moolenaar
ea6de5ee49 s/utime/modtime/g -- utime shadows utime(3).
Submitted by:	Garrett Cooper
2011-01-22 21:27:17 +00:00
Rebecca Cran
1161d4202c Fix some more warnings found by clang. 2010-11-22 20:10:48 +00:00
Marcel Moolenaar
e29560acd7 Unbreak the build on strong-aligned architectures (arm, ia64).
Casting from (char *) to (struct ufs1_dinode *) changes the
alignment requirement of the pointer and GCC does not know that
the pointer is adequately aligned (due to malloc(3)), and warns
about it. Cast to (void *) first to by-pass the check.
2010-09-20 04:20:55 +00:00
Brian Somers
1ad5f80fac Revise r197763 which fixes filesystem corruption when extending
into un-zeroed storage.

The original patch was questioned by Kirk as it forces the filesystem
to do excessive work initialising inodes on first use, and was never
MFC'd.  This change mimics the newfs(8) approach of zeroing two
blocks of inodes for each new cylinder group.

Reviewed by:	mckusick
MFC after:	3 weeks
2010-09-19 08:18:56 +00:00
Gavin Atkinson
08f353ebe3 When growing a UFS1 filesystem, we need to initialise all inodes in any new
cylinder groups that are created.  When the filesystem is first created,
newfs always initialises the first two blocks of inodes, and then in the
UFS1 case will also initialise the remaining inode blocks.  The changes in
growfs.c 1.23 broke the initialisation of all inodes, seemingly based on
this implementation detail in newfs(8).  The result was that instead of
initialising all inodes, we would actually end up initialising all but the
first two blocks of inodes.  If the filesystem was grown into empty
(all-zeros) space then the resulting filesystem was fine, however when
grown onto non-zeroed space the filesystem produced would appear to have
massive corruption on the first fsck after growing.
A test case for this problem can be found in the PR audit trail.

Fix this by once again initialising all inodes in the UFS1 case.

PR:		bin/115174
Submitted by:	Nate Eldredgei  nge cs.hmc.edu
Reviewed by:	mjacob
MFC after:	1 month
2010-02-13 16:22:08 +00:00
Kirk McKusick
14a176a0e2 Quiet spurious warnings. 2010-02-11 06:42:08 +00:00
Gavin Atkinson
eb747250e6 Remove dead code. This section of code is only run in the
(sblock.fs_magic == FS_UFS1_MAGIC) case, so the check within the
loop is redundant.

Submitted by:	Nate Eldredge  nge cs.hmc.edu
Reviewed by:	mjacob
Approved by:	ed (mentor)
MFC after:	1 month
2010-01-02 20:18:10 +00:00
Ruslan Ermilov
106d839190 Switch the default WARNS level for sbin/ to 6.
Submitted by:	Ulrich Spörlein
2009-10-19 16:00:24 +00:00
Matt Jacob
4bdcc9c7d7 The cylinder group tag cg_initediblk needs to match the number of inodes
actually initialized. In the growfs case for UFS2, no inodes were actually
being initialized and the number of inodes noted as initialized was the
number of inodes per group. This created a filesystem that was deemed
corrupted because the inodes thus added were full of garbage.

MFC after:	1 month
2009-10-05 01:31:16 +00:00
David Schultz
baa15be0ea Fix an int overflow on very large file systems.
PR:		bin/113399
Submitted by:	Staffan Ulfberg <staffan@ulfberg.se>
2007-12-17 08:03:18 +00:00
Pawel Jakub Dawidek
5a9dc069e0 Teach about new fields (cg_unrefs and fs_unrefs) and new FS_GJOURNAL flag.
Sponsored by:	home.pl
2006-10-31 22:02:24 +00:00
Stefan Farfeleder
42e355872b Remove duplicated assignment. 2006-07-17 20:48:36 +00:00
Robert Watson
6fe62276be Don't define FS_DEBUG by default, as this causes growfs to write debugging
information to /tmp/growfs.debug, which is a world-writable directory.

MFC after:	3 days
Reported by:	Jon Passki <cykyc@yahoo.com>
2005-03-31 04:10:31 +00:00