Commit graph

33 commits

Author SHA1 Message Date
Kirk McKusick dffce2150e Refactoring of reading and writing of the UFS/FFS superblock.
Specifically reading is done if ffs_sbget() and writing is done
in ffs_sbput(). These functions are exported to libufs via the
sbget() and sbput() functions which then used in the various
filesystem utilities. This work is in preparation for adding
subperblock check hashes.

No functional change intended.

Reviewed by: kib
2018-01-26 00:58:32 +00:00
Pedro F. Giffuni 1de7b4b805 various: general adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

No functional change intended.
2017-11-27 15:37:16 +00:00
Ed Maste 1dc349ab95 prefix UFS symbols with UFS_ to reduce namespace pollution
Specifically:
  ROOTINO -> UFS_ROOTINO
  WINO -> UFS_WINO
  NXADDR -> UFS_NXADDR
  NDADDR -> UFS_NDADDR
  NIADDR -> UFS_NIADDR
  MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)

Also prefix ext2's and nandfs's NDADDR and NIADDR with EXT2_ and NANDFS_

Reviewed by:	kib, mckusick
Obtained from:	NetBSD
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9536
2017-02-15 19:50:26 +00:00
Pedro F. Giffuni 6e560add61 quot: make use of our rounddown() macro when <sys/param.h> is available.
No functional change.
2016-05-02 02:13:22 +00:00
Matthew D Fleming b424efd5b1 Fix usr.bin/ and usr.sbin/ build with a 64-bit ino_t.
Original code by:	Gleb Kurtsou
2012-09-27 23:31:19 +00:00
Kirk McKusick 7649cb0043 The dump, fsck_ffs, fsdb, fsirand, newfs, makefs, and quot utilities
include sys/time.h instead of time.h. This include is incorrect as
per the manpages for the APIs and the POSIX definitions. This commit
replaces sys/time.h where necessary with time.h.

The commit also includes some minor style(9) header fixup in newfs.

This commit is part of a larger effort by Garrett Cooper started in
//depot/user/gcooper/posix-conformance-work/ -- to make FreeBSD more
POSIX compliant.

Submitted by:  Garrett Cooper   yanegomi at gmail dot com
2011-01-24 06:17:05 +00:00
Ed Schouten b4eca7675a Make `quot -a' work when we've got slashes in the device name.
A very long time ago we had raw device nodes. quot(8) was supposed to
use these  when running `quot -a'. For some reason the code got once
changed to strip the device name until it reaches the last slash. This
is not reliable, because this means /dev/mirror/foo will be stripped to
/dev/foo.

This bug also exists on RELENG_7 and RELENG_6, but I think I'll just
merge them back somewhere after the upcoming releases. There's no rush.

MFC after:	2 months
2008-09-14 11:50:19 +00:00
Dag-Erling Smørgrav 8f518424d9 Drag this code kicking and screaming into the twenty-first century. 2008-07-02 15:51:59 +00:00
Maxim Konovalov c433b438f2 o Check we have a non-NULL pointer to a super block before dereference it.
PR:		misc/103822
Submitted by:	Dmitry Stefankov
MFC after:	2 weeks
2006-09-30 07:34:20 +00:00
David Malone bee3d34f79 The quot command expected all inodes contents to be valid, however
on UFS2 inodes are initialised as they are needed, rather than at
newfs time. When quot encountered these inodes it could produce
crazy results.

Now, on UFS2 filesystems, quot's get_inode function will bzero
unallicated inodes before passing them back to a caller. This is
how UFS2 initialises new inodes, so this should work OK.

Also, while I'm here, make quot exit with an error if it finds
inodes of an unknown type. This should help catch future problems
of this type.

Reviewed by:	iedowse
MFC after:	1 week
2006-02-25 23:50:15 +00:00
Stefan Farfeleder 18b51f792f Remove unused variables. 2005-04-09 14:59:10 +00:00
David E. O'Brien b728350ee6 Use __FBSDID over rcsid[]. Protect copyright[] where needed. 2003-05-03 21:06:42 +00:00
Tim J. Robbins 6c45bec6b6 Repair the UFS2 superblock location consistency check so that it succeeds
on valid superblocks instead of issuing the error "not a BSD filesystem".
fs_sblockloc is a byte offset, not a fragment number. This change makes
quot work properly on UFS2 filesystems, which is important now that UFS2
is the default.
2003-04-25 10:07:50 +00:00
Mike Barcroft bc6ba9aec6 Back out rev 1.19; getbsize(3)'s original interface has been restored. 2002-12-30 18:21:47 +00:00
Andrew Gallatin f6a807d6fb another int * to size_t * change for getbsize() to make it compile
on LP64 hosts
2002-10-24 17:43:56 +00:00
Kirk McKusick 1c85e6a35d 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>
2002-06-21 06:18:05 +00:00
Dag-Erling Smørgrav 9f60cc9e43 Unbreak Alpha build. 2002-05-15 08:01:31 +00:00
Poul-Henning Kamp 386f1d1bf2 Sigh... Yet a BBSIZE breakage. 2002-05-12 21:43:02 +00:00
Mike Heffner 57cdc15247 WARNS=2 cleanup.
PR:		bin/32567
MFC after:	2 weeks
2001-12-09 07:51:26 +00:00
Paul Saab 81f1ec27ee Allow for the last arugment to be the mountpoint of a filesystem,
not just the device.
2001-03-10 12:12:47 +00:00
David E. O'Brien 1a37aa566b Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
Mike Smith 5744d83648 /dev/rXXX -> /dev/XXX 2000-05-31 01:04:22 +00:00
Philippe Charnier 652b720001 Do not repeat the name of the flag. Change alloc to allocate for better
spelling of printed messages.
1999-11-27 17:05:08 +00:00
Peter Wemm 97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Matthew Dillon 9983067ebe PR: bin/8624
Fixed intermediate calculation overflow when reporting users with > 2GB of
    disk space.
1998-12-13 07:16:05 +00:00
Bruce Evans b49d184b20 Started getting rid of the compatibility cruft for the Lite1 mount()
and the pre-Lite2 vfsconf interfaces.

For quot, just back out revs. 1.1 and 1.2 and change MNT_FFS to
"ufs", so that vfsconf isn't used at all.  Revs. 1.1 and 1.2 were
hacks to get around f_fstypename not being in `struct statfs' in
Lite1.
1998-01-17 16:45:03 +00:00
Philippe Charnier 6980f0ebac Use err(3). Silent -Wall. 1997-10-10 06:31:07 +00:00
Jordan K. Hubbard c9d12677b4 Cast argument to lseek() properly to off_t.
PR:		4246
Obtained from:	review of PR and NetBSD sources.
1997-08-13 12:09:48 +00:00
Peter Wemm 476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
Jordan K. Hubbard 1130b656e5 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.
1997-01-14 07:20:47 +00:00
Peter Wemm c24ee47ce0 No need to go back quite _that_ far to the MOUNT_UFS constant when we have
a perfectly good getvfsbyname("ufs").. :-)

Pointed out by: wollman and bde
1995-11-03 17:04:02 +00:00
Peter Wemm 696322c8f2 Minor tweaks to get quot to compile on FreeBSD..
Basically back-port the dynamic fsname strings back to static constants.
1995-11-03 15:21:04 +00:00
Peter Wemm 16c2ba9395 Import NetBSD's quot command, filling the gap in our sources
(We only have the man page...)

Obtained from: NetBSD; Wolfgang Solfrank / TooLs GmbH.
1995-11-03 15:06:04 +00:00