| History log of /src/sbin/fsck_ffs |
| Revision | Date | Author | Comments |
| 1.51 | 03-Jun-2023 |
lukem | bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER
Provide a single variable CC_WNO_ADDRESS_OF_PACKED_MEMBER with options for both clang and gcc, to replace CLANG_NO_ADDR_OF_PACKED_MEMBER CC_NO_ADDR_OF_PACKED_MEMBER GCC_NO_ADDR_OF_PACKED_MEMBER
Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
|
| 1.50 | 06-Sep-2020 |
mrg | add support for new GCC 9 warnings that may be too much to fix right now. new address-of-packed-member and format-overflow warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.
apply to a bunch of the tree. mostly, these are real bugs that should be fixed, but in many cases, only by removing the 'packed' attribute from some structure that doesn't really need it. (i looked at many different ones, and while perhaps 60-80% were already properly aligned, it wasn't clear to me that the uses were always coming from sane data vs network alignment, so it doesn't seem safe to remove packed without careful research for each affect struct.) clang already warned (and was not erroring) for many of these cases, but gcc picked up dozens more.
|
| 1.49 | 11-Jun-2018 |
kamil | Restore the MKGROFF=bo MKCXX=yes build
Mark the documentation in dc(1), gprof(1), rogue(6) and fsck_ffs(8) with the .roff flag in SUBDIR.
Sponsored by <The NetBSD Foundation>
|
| 1.48 | 08-Feb-2017 |
rin | branches: 1.48.10; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.47 | 07-Feb-2017 |
rin | Do not compile in progress.c when SMALLPROG is defined.
|
| 1.46 | 23-Mar-2016 |
christos | branches: 1.46.2; 1.46.4; -O0 for pass1.c and vax
|
| 1.45 | 05-Jul-2014 |
dholland | Rework /usr/share/doc.
Update the <bsd.doc.mk> infrastructure, and update the docs to match the new infrastructure.
- Build and install text, ps, pdf, and/or html, not roff sources.
- Don't wire the chapter numbers into the build system, or use them in the installed pathnames. This didn't matter much when the docs were a museum, but now that we're theoretically going to start maintaining them again, we're going to add and remove documents periodically and having the chapter numbers baked in creates a lot of thrashing for no purpose.
- Specify the document name explicitly, rather than implicitly in a path. Use this name (instead of other random strings) as the name of the installed files.
- Specify the document section, which is the subdirectory of /usr/share/doc to install into.
- Allow multiple subdocuments. (That is, multiple documents in one output directory.)
- Enumerate the .png files groff emits along with html so they can be installed.
- Remove assorted hand-rolled rules for running roff and roff widgetry and add enough variable settings to make these unnecessary. This includes support for - explicit use of soelim - refer - tbl - pic - eqn
- Forcibly apply at least minimal amounts of sanity to certain autogenerated roff files.
- Don't exclude USD.doc, SMM.doc, and PSD.doc directories from the build, as they now actually do stuff.
Note: currently we can't generate pdf. This turns out to be a nontrivial problem with no immediate solution forthcoming. So for now, as a workaround, install compressed .ps as the printable form.
|
| 1.44 | 10-Aug-2012 |
joerg | branches: 1.44.2; 1.44.8; Don't depend on HAVE_GCC being always defined.
|
| 1.43 | 14-Aug-2011 |
christos | branches: 1.43.2; WARNS=4
|
| 1.42 | 20-Jun-2011 |
mrg | remove most of the remaining HAVE_GCC tests that are always true in the modern world.
|
| 1.41 | 06-Mar-2011 |
bouyer | branches: 1.41.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.40 | 05-Jun-2009 |
haad | branches: 1.40.2; Add support for DIOCGDISKINFO to disk like device drivers. Change partutil.c::getdiskinfo to use it to get disk geometry info. Use DIOCGWEDGEINFO ioctl to get information about partition size, if disk driver doesn't support it use old DIOCGDINFO. This patch adds support for wedge like devices(lvm logical volumes, ZFS zvol partitions) to newfs and other tools.
No objections on tech-userlevel@.
|
| 1.39 | 11-Apr-2009 |
lukem | Enable WARNS=4 by default except for: dump dump_lfs fsck_ffs fsck_lfs fsdb mount_smbfs newfs_ext2fs newfs_lfs resize_lfs setkey
|
| 1.38 | 30-Aug-2008 |
bouyer | branches: 1.38.4; Add fss(4) snapshot support to fsck_ffs(8) (via -x or -X options, like dump(8)). This allows fsck_ffs -n to work on a snapshot of a R/W mounted filesystem, and avoid errors related to filesystem activity.
|
| 1.37 | 29-Aug-2008 |
gmcgarry | Wrap compiler-specific flags with HAVE_GCC and HAVE_PCC as necessary. Add a few flags for PCC.
|
| 1.36 | 31-Jul-2008 |
simonb | Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.35 | 04-May-2008 |
tsutsui | branches: 1.35.2; 1.35.4; There is only one more file which requires HACKS for m68000, so handle it in each Makefile rather than sys.mk.
These ICEs might be related with GCC Bugzilla Bug 32424 which is not resolved yet even in the upstream.
|
| 1.34 | 09-Feb-2008 |
mrg | branches: 1.34.4; 1.34.6; make all sun2 use -O0 and move most of the hacks out into just 3 files.
|
| 1.33 | 26-Aug-2006 |
christos | branches: 1.33.8; 1.33.10; - Deal with wedges and the new disk geometry structures, instead of using struct disklabel.
Functionality lost: 1. struct disklabel used to be updated to contain bsize, fsize, cpg. This information was used to locate the alternative superblock in the filesystem if the primary superblock was corrupted. We need to find a new place to store this information if we need this functionality. 2. On vax SMD drives that contained bad sector lists, the newfs program knew how to get the offset and skip to the correct location in order to place the label.
|
| 1.32 | 17-Aug-2006 |
christos | Revert previous. It is not ready for public consumption.
|
| 1.31 | 17-Aug-2006 |
christos | Don't use || if you need &&.
|
| 1.30 | 24-Jun-2006 |
mrg | work around some GCC4 internal problems on m68000 platform. document the hack, and update another GCC4 list.
|
| 1.29 | 11-May-2006 |
mrg | sprinkle some -fno-strict-aliasing and -Wno-pointer-sign with GCC4.
|
| 1.28 | 20-Jan-2005 |
xtraeme | WARNS=2 is the default defined in sbin/Makefile.inc. (thanks wiz)
|
| 1.27 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.26 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.25 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.24 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.23 | 19-Aug-2002 |
lukem | Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path
|
| 1.22 | 15-Jan-1999 |
bouyer | branches: 1.22.4; #include machine/bswap.h and remove -lutil.
|
| 1.21 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.20 | 11-Oct-1997 |
mycroft | Use bsd.subdir.mk as appropriate.
|
| 1.19 | 10-Oct-1997 |
christos | CFLAGS->CPPFLAGS
|
| 1.18 | 21-Sep-1997 |
lukem | remove -g from CFLAGS=
|
| 1.17 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.16 | 08-May-1997 |
gwr | Back out the .PATH.c changes. The .depend problem (and others) will be fixed using the new .NOPATH make feature instead.
|
| 1.15 | 06-May-1997 |
gwr | Use .PATH.c: ...
|
| 1.14 | 21-Feb-1997 |
mikel | use += instead of = for CFLAGS
|
| 1.13 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.12 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.11 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.10 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.9 | 22-Dec-1994 |
cgd | specify man pages the new way.
|
| 1.8 | 30-Jun-1994 |
cgd | deal with new share/doc strategy
|
| 1.7 | 25-Jun-1994 |
cgd | update for new doc-make/install strategy
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.4 | 28-Apr-1993 |
cgd | i don't think we're in sys.386bsd any more...
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.22.4.1 | 19-Oct-1999 |
fvdl | Add -I${.CURDIR}/../../sys for convenience. Should not be merged with the trunk.
|
| 1.33.10.1 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
| 1.33.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.34.6.1 | 18-May-2008 |
yamt | sync with head.
|
| 1.34.4.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.34.4.1 | 02-Jun-2008 |
mjf | Sync with HEAD.
|
| 1.35.4.1 | 10-Jun-2008 |
simonb | Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
Still a number of issues - look in doc/BRANCHES for "simonb-wapbl" for more info.
|
| 1.35.2.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.38.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
| 1.40.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.41.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.43.2.1 | 30-Oct-2012 |
yamt | sync with head
|
| 1.44.8.1 | 10-Aug-2014 |
tls | Rebase.
|
| 1.44.2.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.46.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.46.2.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.48.10.1 | 25-Jun-2018 |
pgoyette | Sync with HEAD
|
| 1.3 | 07-Oct-2023 |
rin | Drop -O[01] hacks for vax; no longer necessary for patched GCC 10
PR port-vax/57646: Import major vax toolchain fix by Kalvis Duckmanton
XXXRO: GCC 12 may require hacks for a while, but it turned out that GCC 12 should be treated differently from older versions; a lot of new files need -O[01] flags, while some may no longer require it.
I will take a look later.
Note that these hacks are not required if Kalvis's patches for GCC 12 are applied.
Keep doc/HACKS entries for a while (will be sync with update for GCC 12).
diff --git a/crypto/external/bsd/openssh/lib/Makefile b/crypto/external/bsd/openssh/lib/Makefile index 96a93f5e396..4e38be1b642 100644 --- a/crypto/external/bsd/openssh/lib/Makefile +++ b/crypto/external/bsd/openssh/lib/Makefile @@ -117,12 +117,6 @@ COPTS.${f}.c+= -Wno-pointer-sign # XXX COPTS.channels.c+= -fno-strict-aliasing
-# XXX -.if ${MACHINE} == "vax" -COPTS.poly1305.c+= -O0 -COPTS.umac.c+= -O0 -.endif - COPTS.hostfile.c+= ${CC_WNO_FORMAT_TRUNCATION} COPTS.sshkey.c+= ${CC_WNO_FORMAT_TRUNCATION} COPTS.cipher.c+= -Wno-error=deprecated-declarations diff --git a/distrib/utils/x_ping/Makefile b/distrib/utils/x_ping/Makefile index f1c452a0d60..8ee77580a3f 100644 --- a/distrib/utils/x_ping/Makefile +++ b/distrib/utils/x_ping/Makefile @@ -12,10 +12,6 @@ CPPFLAGS+= -I${SRCDIR} -DCRUNCHOPS DPADD= ${LIBM} LDADD= -lm
-.if ${MACHINE_ARCH} == "vax" -COPTS.ping.c=-O0 -.endif - .include <bsd.prog.mk>
.PATH: ${SRCDIR} diff --git a/external/apache2/argon2/lib/libargon2/Makefile.inc b/external/apache2/argon2/lib/libargon2/Makefile.inc index d3f4470c6c7..6a1dd146d7d 100644 --- a/external/apache2/argon2/lib/libargon2/Makefile.inc +++ b/external/apache2/argon2/lib/libargon2/Makefile.inc @@ -16,7 +16,3 @@ CFLAGS+= -pthread LDADD+=-lpthread DPADD+=${LIBPTHREAD} .endif - -.if ${MACHINE} == "vax" -COPTS.blake2b.c+= -O0 -.endif diff --git a/external/bsd/jemalloc/lib/Makefile.inc b/external/bsd/jemalloc/lib/Makefile.inc index 2f524358f46..d5da774f293 100644 --- a/external/bsd/jemalloc/lib/Makefile.inc +++ b/external/bsd/jemalloc/lib/Makefile.inc @@ -53,12 +53,6 @@ COPTS.ctl.c+=-Wno-error=stack-protector COPTS.stats.c+=-Wno-error=stack-protector COPTS.tcache.c+=-Wno-error=stack-protector
-.if ${MACHINE_ARCH} == "vax" -# in merge_overlapping_regs, at regrename.c -COPTS.arena.c+=-O0 -COPTS.extent.c+=-O0 -.endif - SRCS+=${JEMALLOC_SRCS}
jemalloc.d jemalloc.pico jemalloc.o jemalloc.ln jemalloc.po jemalloc.go: \ diff --git a/external/bsd/mdocml/lib/libmandoc/Makefile b/external/bsd/mdocml/lib/libmandoc/Makefile index 40d7e29ae88..dfd3077a2c7 100644 --- a/external/bsd/mdocml/lib/libmandoc/Makefile +++ b/external/bsd/mdocml/lib/libmandoc/Makefile @@ -39,11 +39,6 @@ tbl_opts.c
MAN= mandoc.3
-# XXX -.if ${MACHINE} == "vax" -COPTS.mdoc_macro.c+=-O0 -.endif - COPTS.man_validate.c+=-Wno-error=array-bounds
.include <bsd.lib.mk> diff --git a/external/gpl3/binutils.old/lib/libbfd/Makefile b/external/gpl3/binutils.old/lib/libbfd/Makefile index 03477232b55..74a354532fa 100644 --- a/external/gpl3/binutils.old/lib/libbfd/Makefile +++ b/external/gpl3/binutils.old/lib/libbfd/Makefile @@ -41,10 +41,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \ -DDEBUGDIR=\"${DEBUGDIR}\" -DLIBDIR=\"${LIBDIR}\" \ -DBINDIR=\"${BINDIR}\"
-.if (${BFD_MACHINE_ARCH} == "vax") -CPPFLAGS.elf.c += -O0 -.endif - COPTS.pei-x86_64.c+= -Wno-stack-protector COPTS.elfxx-mips.c+= -Wno-stack-protector COPTS.elf.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-overflow :} diff --git a/external/gpl3/binutils/lib/libbfd/Makefile b/external/gpl3/binutils/lib/libbfd/Makefile index 00cb2b20081..a3f0c25fd35 100644 --- a/external/gpl3/binutils/lib/libbfd/Makefile +++ b/external/gpl3/binutils/lib/libbfd/Makefile @@ -41,10 +41,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHINE_ARCH} -I${DIST}/include -I. \ -DDEBUGDIR=\"${DEBUGDIR}\" -DLIBDIR=\"${LIBDIR}\" \ -DBINDIR=\"${BINDIR}\"
-.if (${BFD_MACHINE_ARCH} == "vax") -CPPFLAGS.elf.c += -O0 -.endif - COPTS.pei-x86_64.c+= -Wno-stack-protector COPTS.elfxx-mips.c+= -Wno-stack-protector COPTS.elf.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-overflow :} diff --git a/external/gpl3/gcc.old/lib/Makefile.sanitizer b/external/gpl3/gcc.old/lib/Makefile.sanitizer index efd36ae4bee..5173a5109a0 100644 --- a/external/gpl3/gcc.old/lib/Makefile.sanitizer +++ b/external/gpl3/gcc.old/lib/Makefile.sanitizer @@ -88,22 +88,3 @@ COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables
# Can't profile without it` #-fomit-frame-pointer - -.if ${MACHINE_ARCH} == "vax" -COPTS.sanitizer_allocator.cc += -O1 -COPTS.sanitizer_common.cc += -O1 -COPTS.sanitizer_common_libcdep.cc += -O1 -COPTS.sanitizer_coverage_libcdep.cc += -O1 -COPTS.sanitizer_coverage_mapping_libcdep.cc += -O1 -COPTS.sanitizer_deadlock_detector1.cc += -O1 -COPTS.sanitizer_mac.cc += -O1 -COPTS.sanitizer_netbsd.cc += -O1 -COPTS.sanitizer_posix.cc += -O1 -COPTS.sanitizer_printf.cc += -O1 -COPTS.sanitizer_procmaps_common.cc += -O1 -COPTS.sanitizer_stackdepot.cc += -O1 -COPTS.sanitizer_symbolizer_libcdep.cc += -O1 -COPTS.sanitizer_symbolizer_report.cc += -O1 -COPTS.ubsan_diag.cc += -O1 -COPTS.ubsan_init.cc += -O1 -.endif diff --git a/external/gpl3/gcc.old/lib/libasan/Makefile b/external/gpl3/gcc.old/lib/libasan/Makefile index 1e6f9608abe..3da7bbf2f58 100644 --- a/external/gpl3/gcc.old/lib/libasan/Makefile +++ b/external/gpl3/gcc.old/lib/libasan/Makefile @@ -49,14 +49,6 @@ LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread CPPFLAGS+=-DCAN_SANITIZE_UB=0
-.if ${MACHINE_ARCH} == "vax" -COPTS.asan_allocator.cc += -O1 -COPTS.asan_report.cc += -O1 -COPTS.sanitizer_file.cc += -O1 -COPTS.ubsan_diag.cc += -O1 -COPTS.ubsan_init.cc += -O1 -.endif - .if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" COPTS.asan_interceptors.cc += -O1 .endif diff --git a/external/gpl3/gcc.old/lib/liblsan/Makefile b/external/gpl3/gcc.old/lib/liblsan/Makefile index 4578544a9a8..ddb7981077c 100644 --- a/external/gpl3/gcc.old/lib/liblsan/Makefile +++ b/external/gpl3/gcc.old/lib/liblsan/Makefile @@ -16,11 +16,6 @@ LSAN_SRCS+= \ lsan_linux.cc \ lsan_thread.cc
-.if ${MACHINE_ARCH} == "vax" -COPTS.lsan_allocator.cc += -O1 -COPTS.sanitizer_file.cc += -O1 -.endif - LIB= lsan SRCS+= ${LSAN_SRCS} LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm diff --git a/external/gpl3/gcc.old/lib/libubsan/Makefile b/external/gpl3/gcc.old/lib/libubsan/Makefile index 2e2faca7b1c..9de82550d14 100644 --- a/external/gpl3/gcc.old/lib/libubsan/Makefile +++ b/external/gpl3/gcc.old/lib/libubsan/Makefile @@ -26,10 +26,6 @@ UBSAN_SRCS= \ COPTS.${_s}.cc+=-frtti .endfor
-.if ${MACHINE_ARCH} == "vax" -COPTS.sanitizer_file.cc += -O1 -.endif - LIB= ubsan SRCS+= ${UBSAN_SRCS} LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm diff --git a/external/gpl3/gcc.old/usr.bin/cc1/Makefile b/external/gpl3/gcc.old/usr.bin/cc1/Makefile index c55e292ee8e..ff12a5be524 100644 --- a/external/gpl3/gcc.old/usr.bin/cc1/Makefile +++ b/external/gpl3/gcc.old/usr.bin/cc1/Makefile @@ -46,17 +46,6 @@ CPPFLAGS.default-c.c+= -I${BACKENDOBJ} BUILDSYMLINKS+= ${GNUHOSTDIST}/gcc/config/sh/sh-c.cc sh-c.c .endif
-.if ${MACHINE_CPU} == "vax" -COPTS.c-decl.c+=-O0 -COPTS.c-typeck.c+=-O0 -COPTS.c-array-notation.c+=-O0 -COPTS.c-common.c+=-O0 -COPTS.c-ada-spec.c+=-O0 -COPTS.cilk.c+=-O0 -COPTS.c-ubsan.c+=-O0 -COPTS.cc1-checksum.c+=-O0 -.endif - .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel" COPTS.c-common.c+=-O3 .endif diff --git a/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile b/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile index 3123ee0d60b..aab82ad3448 100644 --- a/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile +++ b/external/gpl3/gcc.old/usr.bin/cc1obj/Makefile @@ -44,16 +44,8 @@ COPTS.objc-act.c+= -Wno-stack-protector COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax" -COPTS.c-decl.c+=-O0 -COPTS.c-typeck.c+=-O0 -COPTS.c-array-notation.c+=-O0 -COPTS.c-common.c+=-O0 -COPTS.c-ada-spec.c+=-O0 -COPTS.cilk.c+=-O0 -COPTS.c-ubsan.c+=-O0 -COPTS.cc1obj-checksum.c+=-O0 -.endif +COPTS.c-cppbuiltin.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8:? -Wno-error=format-overflow :} +COPTS.c-typeck.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} == 8:? -Wno-error=format-overflow :}
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel" COPTS.c-common.c+=-O3 diff --git a/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile b/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile index b9c108251c5..e04e8fc7f53 100644 --- a/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile +++ b/external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile @@ -69,18 +69,6 @@ COPTS.objc-act.c+= -Wno-stack-protector COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax" -COPTS.c-decl.c+=-O0 -COPTS.c-typeck.c+=-O0 -COPTS.c-array-notation.c+=-O0 -COPTS.c-common.c+=-O0 -COPTS.c-ada-spec.c+=-O0 -COPTS.cilk.c+=-O0 -COPTS.c-ubsan.c+=-O0 -COPTS.cc1obj-checksum.c+=-O0 -COPTS.decl.c+=-O0 -.endif - .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel" COPTS.c-common.c+=-O3 .endif diff --git a/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile b/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile index 7936efd3a5e..7c54559e21a 100644 --- a/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile +++ b/external/gpl3/gcc.old/usr.bin/cc1plus/Makefile @@ -31,23 +31,6 @@ CHECKSUM_OBJS= ${LIBBACKTRACEOBJ}/libbacktrace.a \
CFLAGS+= -Wno-error=stack-protector
-.if ${MACHINE_ARCH} == "vax" -COPTS.call.c+=-O0 -COPTS.decl.c+=-O0 -COPTS.typeck2.c+=-O0 -COPTS.class.c+=-O0 -COPTS.typeck.c+=-O0 -COPTS.init.c+=-O0 -COPTS.semantics.c+=-O0 -COPTS.mangle.c+=-O0 -COPTS.constexpr.c+=-O0 -COPTS.c-common.c+=-O0 -COPTS.c-ada-spec.c+=-O0 -COPTS.cilk.c+=-O0 -COPTS.c-ubsan.c+=-O0 -COPTS.cc1plus-checksum.c+=-O0 -.endif - .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel" COPTS.c-common.c+=-O3 .endif diff --git a/external/gpl3/gcc.old/usr.bin/gcc/Makefile b/external/gpl3/gcc.old/usr.bin/gcc/Makefile index 7a66d77ffc7..a5a4b1c3adf 100644 --- a/external/gpl3/gcc.old/usr.bin/gcc/Makefile +++ b/external/gpl3/gcc.old/usr.bin/gcc/Makefile @@ -25,9 +25,6 @@ ${SRCS}: ${GCCARCH}/defs.mk .include <bsd.info.mk>
COPTS.gcc.c= -Wno-stack-protector -.if ${MACHINE_ARCH} == "vax" -COPTS.dse.c= -O1 -.endif
.PATH: ${DIST}/gcc ${DIST}/gcc/doc ${DIST}/gcc/c
diff --git a/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile b/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile index 751d1513eec..33aeb1c9898 100644 --- a/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile +++ b/external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile @@ -14,10 +14,6 @@ SRCS= decNumber.c decContext.c decimal32.c decimal64.c decimal128.c CPPFLAGS+= -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} -I${DIST}/libdecnumber CPPFLAGS+= -I${DIST}/libgcc
-.if ${MACHINE_ARCH} == "vax" -COPTS.decNumber.c=-O0 -.endif - .include <bsd.lib.mk>
# Force using C++ for this diff --git a/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile b/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile index 90f44a9fcf6..fd251464fb7 100644 --- a/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile +++ b/external/gpl3/gcc.old/usr.bin/lto-dump/Makefile @@ -24,11 +24,6 @@ COPTS.lto-common.c+= -Wno-stack-protector .include "../Makefile.backtrace" .include "../Makefile.libdecnumber"
-.if ${MACHINE_ARCH} == "vax" -COPTS.lto-lang.c+=-O0 -COPTS.lto-symtab.c+=-O0 -.endif - LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm DPADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} ${LIBINTL} ${LIBZ} ${LIBM}
diff --git a/external/gpl3/gcc.old/usr.bin/lto1/Makefile b/external/gpl3/gcc.old/usr.bin/lto1/Makefile index 4c49161a64c..340d3c6124f 100644 --- a/external/gpl3/gcc.old/usr.bin/lto1/Makefile +++ b/external/gpl3/gcc.old/usr.bin/lto1/Makefile @@ -21,11 +21,6 @@ COPTS.lto-common.c+= -Wno-stack-protector .include "../Makefile.libcpp" .include "../Makefile.libdecnumber"
-.if ${MACHINE_ARCH} == "vax" -COPTS.lto-lang.c+=-O0 -COPTS.lto-symtab.c+=-O0 -.endif - LDADD+= ${LIBIBERTYOBJ}/libiberty.a DPADD+= ${LIBIBERTYOBJ}/libiberty.a LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm diff --git a/external/gpl3/gdb.old/lib/libdecnumber/Makefile b/external/gpl3/gdb.old/lib/libdecnumber/Makefile index bcd4ae5b222..ce28811526b 100644 --- a/external/gpl3/gdb.old/lib/libdecnumber/Makefile +++ b/external/gpl3/gdb.old/lib/libdecnumber/Makefile @@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHINE_ARCH} \
SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}
-.if ${MACHINE_ARCH} == "vax" -COPTS.decNumber.c=-O0 -.endif - .PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd
.include <bsd.lib.mk> diff --git a/external/gpl3/gdb/lib/libdecnumber/Makefile b/external/gpl3/gdb/lib/libdecnumber/Makefile index c95d36e3dfa..e3169865304 100644 --- a/external/gpl3/gdb/lib/libdecnumber/Makefile +++ b/external/gpl3/gdb/lib/libdecnumber/Makefile @@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHINE_ARCH} \
SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}
-.if ${MACHINE_ARCH} == "vax" -COPTS.decNumber.c=-O0 -.endif - .PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd ${DIST}/libdecnumber/bid
.include <bsd.lib.mk> diff --git a/external/gpl3/gdb/lib/libgdb/Makefile b/external/gpl3/gdb/lib/libgdb/Makefile index b87a515d13a..c118c363975 100644 --- a/external/gpl3/gdb/lib/libgdb/Makefile +++ b/external/gpl3/gdb/lib/libgdb/Makefile @@ -66,12 +66,6 @@ CFLAGS:= ${CXXFLAGS} -std=gnu++17 -Wno-error=stack-protector
ada-exp.c: ada-lex.c
-.if ${MACHINE} == "vax" -. if ${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 8 -COPTS.read.c+= -O0 -. endif -.endif - # These are generated by implicit rules and are not easy to generate CLEANDIRFILES+= \ ada-exp.c ada-lex.c \ diff --git a/external/mit/xorg/lib/gallium.old/Makefile b/external/mit/xorg/lib/gallium.old/Makefile index 55b2fe3d1c1..bfa40c8974f 100644 --- a/external/mit/xorg/lib/gallium.old/Makefile +++ b/external/mit/xorg/lib/gallium.old/Makefile @@ -1211,10 +1211,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHL COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} .endif
-.if ${MACHINE_ARCH} == "vax" -COPTS.nir.c += -O1 -.endif - # XXXGCC12 .if ${MACHINE_ARCH} == "m68k" COPTS.st_glsl_to_tgsi.cpp += -O1 diff --git a/external/mit/xorg/lib/gallium/Makefile b/external/mit/xorg/lib/gallium/Makefile index 6778a8c11c8..9f1422080fe 100644 --- a/external/mit/xorg/lib/gallium/Makefile +++ b/external/mit/xorg/lib/gallium/Makefile @@ -1428,10 +1428,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}.debug ${DRIDEBUGDIR}/${_d}_dri.so.${SHL COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} .endif
-.if ${MACHINE_ARCH} == "vax" -COPTS.nir.c += -O1 -.endif - COPTS.u_atomic.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-builtin-declaration-mismatch :}
.include <bsd.lib.mk> diff --git a/external/mit/xorg/lib/libX11/Makefile.libx11 b/external/mit/xorg/lib/libX11/Makefile.libx11 index e103d9ace12..0e55c2a4732 100644 --- a/external/mit/xorg/lib/libX11/Makefile.libx11 +++ b/external/mit/xorg/lib/libX11/Makefile.libx11 @@ -471,11 +471,6 @@ COPTS.OpenDis.c+= -Wno-error # XXX xf86bigfstr.h COPTS.XlibInt.c+= -Wno-error # XXX xcmiscstr.h COPTS.XKBBind.c+= -Wno-deprecated-declarations # uses XKeycodeToKeysym
-# XXX -.if ${MACHINE} == "vax" -COPTS.lcWrap.c+= -O0 -.endif - CWARNFLAGS.clang+= -Wno-string-plus-int
.include "${NETBSDSRCDIR}/external/mit/xorg/tools/makekeys/Makefile.makekeys" diff --git a/games/gomoku/Makefile b/games/gomoku/Makefile index e86a63aaea7..678537066ed 100644 --- a/games/gomoku/Makefile +++ b/games/gomoku/Makefile @@ -9,10 +9,6 @@ LDADD= -lcurses -lterminfo HIDEGAME=hidegame CPPFLAGS+= ${DEBUG:D-DDEBUG}
-.if ${MACHINE} == "vax" -COPTS.pickmove.c += -O0 -.endif - #WARNS= 6 # would produce warnings about small integer types LINTFLAGS+= -w # treat warnings as errors LINTFLAGS+= -T # strict bool mode diff --git a/games/phantasia/Makefile b/games/phantasia/Makefile index e9c53f23ae5..b919dac17c6 100644 --- a/games/phantasia/Makefile +++ b/games/phantasia/Makefile @@ -52,7 +52,3 @@ map: map.c ./map | plot > /dev/tty
.include <bsd.prog.mk> - -.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax" -COPTS.misc.c+= -O0 -.endif diff --git a/lib/i18n_module/UTF7/Makefile b/lib/i18n_module/UTF7/Makefile index 712c1515d42..7136f7f0cc3 100644 --- a/lib/i18n_module/UTF7/Makefile +++ b/lib/i18n_module/UTF7/Makefile @@ -3,6 +3,3 @@ SRCPRE=citrus_ .include <bsd.lib.mk>
-.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC) -COPTS.citrus_utf7.c+= -O0 -.endif diff --git a/lib/libbz2/Makefile b/lib/libbz2/Makefile index b2aea1e04b0..e60a2862d48 100644 --- a/lib/libbz2/Makefile +++ b/lib/libbz2/Makefile @@ -15,11 +15,6 @@ SRCS= blocksort.c huffman.c crctable.c randtable.c compress.c \ INCS= bzlib.h INCSDIR= /usr/include
-# XXX huffman.c gets mis-compiled with 2.95.3 -.if ${MACHINE_ARCH} == "vax" -COPTS+= -O0 -.endif - COPTS+= ${CC_WNO_IMPLICIT_FALLTHROUGH}
# XXX blocksort.c gets mis-compiled with 4.1 diff --git a/lib/libc/gdtoa/Makefile.inc b/lib/libc/gdtoa/Makefile.inc index 132686fc33d..609da919803 100644 --- a/lib/libc/gdtoa/Makefile.inc +++ b/lib/libc/gdtoa/Makefile.inc @@ -44,10 +44,3 @@ SRCS+= dmisc.c \ .if ${MACHINE_ARCH} != "vax" SRCS+= strtord.c .endif - -# XXX revisit with newer GCC. -# Ensure numbers like 0xffff319f5fa95963 print correctly -# ("999999999999999.98", not garbage like "?A>C>@>C:BA;A><.:<") -.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC) -COPTS.misc.c+= -O0 -.endif diff --git a/lib/libcrypt/Makefile b/lib/libcrypt/Makefile index cb3f89d6d09..e9c8be820da 100644 --- a/lib/libcrypt/Makefile +++ b/lib/libcrypt/Makefile @@ -30,9 +30,6 @@ SRCS+= crypt-argon2.c SRCS+= ${src} COPTS.${src}+= -fvisibility=hidden . endfor -. if ${MACHINE} == "vax" -COPTS.blake2b.c+= -O0 -. endif .endif
WARNS?= 5 diff --git a/libexec/ld.elf_so/Makefile b/libexec/ld.elf_so/Makefile index f5baae1e883..24f7e1121e5 100644 --- a/libexec/ld.elf_so/Makefile +++ b/libexec/ld.elf_so/Makefile @@ -141,10 +141,6 @@ CPPFLAGS+= -DRTLD_DEFAULT_LIBRARY_PATH=\"${SHLIBDIR}:${LIBDIR}\" COPTS.rtld.c+= -Wno-stack-protector COPTS.symbol.c+=-Wno-stack-protector
-.if ${MACHINE_CPU} == "vax" -COPTS.rtld.c+= -O0 -.endif - LDADD+= -Wl,--version-script=${.CURDIR}/symbols.map LDADD+= -L${CLIBOBJ} -L${DESTDIR}${LIBDIR} .if ${MKPICLIB} != "no" diff --git a/sbin/fsck_ffs/Makefile.common b/sbin/fsck_ffs/Makefile.common index 765638b2801..824e3bf2628 100644 --- a/sbin/fsck_ffs/Makefile.common +++ b/sbin/fsck_ffs/Makefile.common @@ -36,7 +36,3 @@ COPTS.ffs_appleufs.c+= -Wno-pointer-sign .if ${MACHINE_ARCH} == "m68000" COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs .endif -.if ${MACHINE_ARCH} == "vax" -COPTS.pass1.c+= -O0 -COPTS.inode.c+= -O0 -.endif diff --git a/sbin/fsdb/Makefile b/sbin/fsdb/Makefile index c039f73a1eb..3b0331e5880 100644 --- a/sbin/fsdb/Makefile +++ b/sbin/fsdb/Makefile @@ -39,12 +39,6 @@ COPTS.${f}.c+= -Wno-pointer-sign COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs .endif
-.if ${MACHINE_ARCH} == "vax" -COPTS.pass1.c+= -O0 -COPTS.inode.c+= -O0 -COPTS.fsdb.c+= -O0 -.endif - CWARNFLAGS.gcc+= ${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
.include <bsd.prog.mk> diff --git a/sbin/newfs_ext2fs/Makefile b/sbin/newfs_ext2fs/Makefile index 40a44b9a038..ecfdbff4d3a 100644 --- a/sbin/newfs_ext2fs/Makefile +++ b/sbin/newfs_ext2fs/Makefile @@ -20,8 +20,4 @@ DPADD+=${LIBPROP}
.PATH: ${NETBSDSRCDIR}/sys/ufs/ext2fs ${FSCK}
-.if ${MACHINE_ARCH} == "vax" -COPTS.mke2fs.c=-O0 -.endif - .include <bsd.prog.mk> diff --git a/sbin/ping/Makefile b/sbin/ping/Makefile index 4f33501ea7a..1f7f56e3ea5 100644 --- a/sbin/ping/Makefile +++ b/sbin/ping/Makefile @@ -12,8 +12,4 @@ CPPFLAGS+= -DIPSEC LDADD+= -lipsec DPADD+= ${LIBIPSEC}
-.if ${MACHINE_ARCH} == "vax" -COPTS.ping.c=-O0 -.endif - .include <bsd.prog.mk> diff --git a/sys/arch/vax/conf/Makefile.vax b/sys/arch/vax/conf/Makefile.vax index cf095d54a86..c483eaa644a 100644 --- a/sys/arch/vax/conf/Makefile.vax +++ b/sys/arch/vax/conf/Makefile.vax @@ -34,7 +34,6 @@ GENASSYM_CONF= ${VAX}/vax/genassym.cf CPPFLAGS+= -D_VAX_INLINE_ AFLAGS+= -x assembler-with-cpp -fno-pic CFLAGS+= -fno-pic -COPTS.wsmux.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 9:? -O1 :}
## diff --git a/sys/lib/libsa/Makefile b/sys/lib/libsa/Makefile index 718c97ce857..4ef3840c753 100644 --- a/sys/lib/libsa/Makefile +++ b/sys/lib/libsa/Makefile @@ -96,7 +96,3 @@ SRCS+= ufs.c lib${LIB}.o:: ${OBJS:O} __buildstdlib
CPPFLAGS+= -Wno-pointer-sign - -.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax" -COPTS.bootp.c+= -O0 -.endif diff --git a/sys/lib/libz/Makefile b/sys/lib/libz/Makefile index 6945c0da6c6..61fb7d4f652 100644 --- a/sys/lib/libz/Makefile +++ b/sys/lib/libz/Makefile @@ -25,7 +25,3 @@ CLEANFILES+= lib${LIB}.o .include <bsd.lib.mk>
lib${LIB}.o:: ${OBJS:O} __buildstdlib - -.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax" -COPTS.inftrees.c+= -O0 -.endif diff --git a/sys/modules/lfs/Makefile b/sys/modules/lfs/Makefile index 962538821a5..ea8f187e160 100644 --- a/sys/modules/lfs/Makefile +++ b/sys/modules/lfs/Makefile @@ -18,9 +18,4 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_inode.c ulfs_lookup.c \
WARNS= 3
-.if ${MACHINE} == "vax" -# GCC 6.5 and 7.4 cannot compile this with -DDIAGNOSTIC and -O2/-O1 -COPTS.lfs_inode.c+= -O0 -.endif - .include <bsd.kmodule.mk> diff --git a/sys/rump/fs/lib/liblfs/Makefile b/sys/rump/fs/lib/liblfs/Makefile index abade3767d9..68b74c62502 100644 --- a/sys/rump/fs/lib/liblfs/Makefile +++ b/sys/rump/fs/lib/liblfs/Makefile @@ -17,9 +17,6 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_extattr.c \
CFLAGS+= -DLFS_KERNEL_RFW -.if ${MACHINE_ARCH} == "vax" -COPTS.lfs_inode.c+=-O0 -.endif
.include <bsd.lib.mk> .include <bsd.klinks.mk> diff --git a/usr.sbin/mtrace/Makefile b/usr.sbin/mtrace/Makefile index aef09db6198..9c125c15265 100644 --- a/usr.sbin/mtrace/Makefile +++ b/usr.sbin/mtrace/Makefile @@ -12,10 +12,6 @@ PROG= mtrace SRCS= igmp.c inet.c kern.c mtrace.c MAN= mtrace.8
-.if ${MACHINE_ARCH} == "vax" -COPTS.mtrace.c=-O0 -.endif - BINMODE=4555 BINOWN= root
diff --git a/external/gpl3/gcc.old/usr.bin/backend/Makefile b/external/gpl3/gcc.old/usr.bin/backend/Makefile index d69a26fe619..99e881c783d 100644 --- a/external/gpl3/gcc.old/usr.bin/backend/Makefile +++ b/external/gpl3/gcc.old/usr.bin/backend/Makefile @@ -533,68 +533,9 @@ COPTS.insn-recog.c+=-Wno-error
.if ${GCC_MACHINE_ARCH} == "vax" CPPFLAGS+=-I${.CURDIR}/../../lib/libgcc/libgcov/arch/${GCC_MACHINE_ARCH} -COPTS.builtins.c+=-O0 -COPTS.calls.c+=-O0 -COPTS.convert.c+=-O0 -COPTS.data-streamer-out.c+=-O0 -COPTS.dse.c+=-O0 # XXX port-vax/51967 -COPTS.dwarf2out.c+=-O0 -COPTS.expmed.c+=-O0 -COPTS.expr.c+=-O0 -Wno-error=tautological-compare -COPTS.fixed-value.c+=-O0 -COPTS.fold-const.c+=-O0 -COPTS.generic-match.c+=-O0 -COPTS.gimple-fold.c+=-O0 -COPTS.gimple-match.c+=-O0 -COPTS.gimple-ssa-strength-reduction.c+=-O0 -COPTS.gimple-ssa-warn-restrict.c+=-O0 -COPTS.gimple.c+=-O0 -COPTS.internal-fn.c+=-O0 -COPTS.lto-streamer-out.c+=-O0 -COPTS.omp-low.c+=-O0 -COPTS.predict.c+=-O0 -COPTS.range-op.cc+=-O0 -COPTS.recog.c+=-O0 -COPTS.sanopt.c+=-O0 -COPTS.stmt.c+=-O0 -COPTS.stor-layout.c+=-O0 -COPTS.targhooks.c+=-O0 -COPTS.tree-affine.c+=-O0 -COPTS.tree-cfg.c+=-O0 -COPTS.tree-data-ref.c+=-O0 -COPTS.tree-eh.c+=-O0 -COPTS.tree-if-conv.c+=-O0 -COPTS.tree-object-size.c+=-O0 -COPTS.tree-parloops.c+=-O0 -COPTS.tree-predcom.c+=-O0 -COPTS.tree-pretty-print.c+=-O0 -COPTS.tree-ssa-alias.c+=-O0 -COPTS.tree-ssa-ccp.c+=-O0 -COPTS.tree-ssa-forwprop.c+=-O0 -COPTS.tree-ssa-loop-ivopts.c+=-O0 -COPTS.tree-ssa-loop-manip.c+=-O0 -COPTS.tree-ssa-loop-niter.c+=-O0 -COPTS.tree-ssa-math-opts.c+=-O0 -COPTS.tree-ssa-phiopt.c+= -O0 -COPTS.tree-ssa-pre.c+=-O0 -COPTS.tree-ssa-reassoc.c+=-O0 -COPTS.tree-ssa-strlen.c+=-O0 -COPTS.tree-ssa-uninit.c+=-O0 -COPTS.tree-ssa.c+=-O0 -COPTS.tree-switch-conversion.c+=-O0 -COPTS.tree-vect-data-refs.c+=-O0 -COPTS.tree-vect-loop-manip.c+=-O0 -COPTS.tree-vect-loop.c+=-O0 -COPTS.tree-vect-patterns.c+=-O0 -COPTS.tree-vect-stmts.c+=-O0 -COPTS.tree-vrp.c+=-O0 -COPTS.tree.c+=-O0 -COPTS.ubsan.c+=-O0 -COPTS.varasm.c+=-O0 -COPTS.vr-values.c+=-O0 -COPTS.web.c+=-O0 -COPTS.wide-int-range.cc+=-O0 -COPTS.wide-int.cc+=-O0 + +COPTS.expmed.c+=-Wno-error=tautological-compare +COPTS.expr.c+=-Wno-error=tautological-compare .else COPTS.tree.c= ${${ACTIVE_CC} == "clang" :? -O0 :} .endif
|
| 1.2 | 28-Oct-2019 |
christos | branches: 1.2.8; inode.c needs -O0 for vax
|
| 1.1 | 08-Feb-2017 |
rin | branches: 1.1.2; 1.1.4; 1.1.16; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.1.16.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
| 1.1.4.2 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.4.1 | 08-Feb-2017 |
bouyer | file Makefile.common was added on branch bouyer-socketcan on 2017-04-21 16:53:13 +0000
|
| 1.1.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.1 | 08-Feb-2017 |
pgoyette | file Makefile.common was added on branch pgoyette-localcount on 2017-03-20 06:57:01 +0000
|
| 1.2.8.1 | 08-Oct-2023 |
martin | Pull up following revision(s) (requested by rin in ticket #394):
external/gpl3/binutils/dist/gas/config/tc-vax.h: revision 1.10 tools/gcc/Makefile: revision 1.109 external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.16 external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.17 external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.18 external/gpl3/gcc.old/dist/gcc/recog.c: revision 1.12 external/gpl3/gcc.old/dist/gcc/function.c: revision 1.16 external/gpl3/gcc.old/dist/gcc/dse.c: revision 1.14 - 1.16 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.13 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.14 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.15 external/gpl3/gcc.old/dist/gcc/doc/tm.texi.in: revision 1.10 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.16 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.17 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.18 external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.19 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.12 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.13 external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.20 external/gpl3/gcc.old/dist/gcc/targhooks.c: revision 1.12 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.14 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.15 external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.12 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.16 external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.13 external/gpl3/gcc.old/dist/gcc/doc/tm.texi: revision 1.12 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.17 external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.18 external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.12 external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.13 external/gpl3/gcc.old/dist/gcc/targhooks.h: revision 1.12 external/gpl3/gcc.old/dist/gcc/target.def: revision 1.10 external/gpl3/gcc.old/dist/gcc/rtlanal.c: revision 1.14 external/gpl3/gcc.old/dist/gcc/reload.c: revision 1.12 external/gpl3/gcc.old/usr.bin/gcc/Makefile: revision 1.11 external/gpl3/gcc.old/usr.bin/lto-dump/Makefile: revision 1.3 external/gpl3/gcc.old/lib/Makefile.sanitizer: revision 1.7 external/gpl3/binutils.old/lib/libbfd/Makefile: revision 1.10 distrib/utils/x_ping/Makefile: revision 1.9 games/phantasia/Makefile: revision 1.38 external/apache2/argon2/lib/libargon2/Makefile.inc: revision 1.2 external/gpl3/gcc.old/lib/libubsan/Makefile: revision 1.8 external/bsd/mdocml/lib/libmandoc/Makefile: revision 1.13 sbin/ping/Makefile: revision 1.18 sbin/newfs_ext2fs/Makefile: revision 1.7 sys/lib/libz/Makefile: revision 1.24 sys/lib/libsa/Makefile: revision 1.97 external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile: revision 1.3 external/gpl3/gdb/lib/libgdb/Makefile: revision 1.36 sys/modules/lfs/Makefile: revision 1.11 external/mit/xorg/lib/gallium/Makefile: revision 1.51 external/gpl3/gdb.old/lib/libdecnumber/Makefile: revision 1.10 external/mit/xorg/lib/libX11/Makefile.libx11: revision 1.26 libexec/ld.elf_so/Makefile: revision 1.148 external/bsd/jemalloc/lib/Makefile.inc: revision 1.16 external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile: revision 1.14 crypto/external/bsd/openssh/lib/Makefile: revision 1.38 external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.21 external/gpl3/gcc.old/usr.bin/cc1/Makefile: revision 1.12 external/gpl3/gcc.old/lib/libasan/Makefile: revision 1.11 external/gpl3/gcc.old/usr.bin/cc1plus/Makefile: revision 1.13 lib/libcrypt/Makefile: revision 1.36 external/gpl3/gdb/lib/libdecnumber/Makefile: revision 1.5 lib/libc/gdtoa/Makefile.inc: revision 1.13 games/gomoku/Makefile: revision 1.13 sbin/fsdb/Makefile: revision 1.43 external/gpl3/gcc.old/usr.bin/lto1/Makefile: revision 1.9 external/mit/xorg/lib/gallium.old/Makefile: revision 1.8 lib/libbz2/Makefile: revision 1.22 external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.12 usr.sbin/mtrace/Makefile: revision 1.14 external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.13 sys/arch/vax/conf/Makefile.vax: revision 1.86 sys/rump/fs/lib/liblfs/Makefile: revision 1.18 sbin/fsck_ffs/Makefile.common: revision 1.3 external/gpl3/binutils/lib/libbfd/Makefile: revision 1.27 lib/i18n_module/UTF7/Makefile: revision 1.5 external/gpl3/gcc.old/lib/liblsan/Makefile: revision 1.7 doc/CHANGES (apply patch) (all external/gpl3/gcc.old/ changes applied to external/gpl3/gcc/)
PR 57646: Import major vax toolchain fix.
|
| 1.62 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.61 | 05-May-2019 |
christos | Add a -z flag to zero out the up to 4 bytes of padding in directory entry names (including the terminating NUL), as well as directory entries with extra free space (d->d_reclen > UFS_DIRSIZ(d)).
Inspired from FreeBSD: https://svnweb.freebsd.org/base?view=revision&revision=347066
While the kernel has been fixed to deal with the padding bytes (new kernels will correctly zero out all the padding after the name), it appears that there is still an issue with directory entries with extra free space, since a newly created and populated filesystem gets modified with "fsck_ffs -z".
|
| 1.60 | 05-May-2019 |
christos | simplify the endian byte-swapping code.
|
| 1.59 | 08-Nov-2018 |
msaitoh | "s/ are are / are /" in comment. No functional change.
|
| 1.58 | 08-Feb-2017 |
rin | branches: 1.58.10; 1.58.12; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.57 | 23-Jun-2013 |
dholland | branches: 1.57.10; 1.57.14; Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of the following symbols so as to disambiguate fully. (Christos already did the lfs ones.)
lblkno lblktosize lfragtosize numfrags blkroundup fragroundup
|
| 1.56 | 19-Jun-2013 |
dholland | Rename ambiguous macros: MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR INOPB -> FFS_INOPB, LFS_INOPB INOPF -> FFS_INOPF, LFS_INOPF blksize -> ffs_blksize, ext2_blksize, or lfs_blksize sblksize -> ffs_blksize
These are not the only ambiguously defined filesystem macros, of course, there's a pile more. I may not have found all the ambiguous definitions of blksize(), too, as there are a lot of other things called 'blksize' in the system.
|
| 1.55 | 09-Jun-2013 |
dholland | Stick UFS_ in front of these symbols: DIRBLKSIZ DIRECTSIZ DIRSIZ OLDDIRFMT NEWDIRFMT
Part of PR 47909.
|
| 1.54 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.53 | 06-Mar-2011 |
bouyer | branches: 1.53.4; 1.53.10; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.52 | 11-Apr-2009 |
lukem | branches: 1.52.2; fix sign-compare issues
|
| 1.51 | 08-Jul-2008 |
simonb | branches: 1.51.4; Fix funny whitespace in a variable assignment.
|
| 1.50 | 23-Feb-2008 |
christos | branches: 1.50.4; 1.50.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.49 | 16-Oct-2006 |
christos | branches: 1.49.8; 1.49.16; 1.49.18; c99 initializers
|
| 1.48 | 21-Apr-2006 |
skrll | Don't use cast expressions as lvalues as newer versions of gcc warn.
|
| 1.47 | 23-Dec-2005 |
yamt | linkup: reparent() only when lost+found is created successfully.
|
| 1.46 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.45 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.44 | 02-Jun-2005 |
lukem | appease gcc -Wuninitialized
|
| 1.43 | 20-Jan-2005 |
xtraeme | whitespace (pointed out by wiz@)
|
| 1.42 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.41 | 08-Oct-2004 |
dbj | have allocdir fail cleanly when allocino fails
|
| 1.40 | 20-Jul-2004 |
mycroft | Reduce memory usage slightly.
|
| 1.39 | 10-Jan-2004 |
mrg | - some KNF (80 cols) - fix a printf format issue
|
| 1.38 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.37 | 13-Jul-2003 |
itojun | use bounded string op
|
| 1.36 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.35 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.34 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.33 | 09-May-2002 |
simonb | Don't bother testing if a uint8_t is > 256 -- that test is always false.
|
| 1.32 | 23-Jan-2001 |
mycroft | Fix a rather glaring byte-swapping bug: di_size is 64 bits, not 16.
|
| 1.31 | 10-Jan-2001 |
mycroft | Whoops; call propagate() with the right child inode number. (Doesn't break anything, but it would have made reconnect less efficient.)
|
| 1.30 | 10-Jan-2001 |
mycroft | Abstract the code to attach a directory to its parent's child list into a separate function, and call it from multiple places in linkup() to handle reconnects and creation of /lost+found.
|
| 1.29 | 09-Jan-2001 |
mycroft | The reconnect algorithm was historically O(n^4). Some years ago I made it O(n^2). Someone helpfully made it O(n^4) again. Today I'm making it O(n). If that's not good enough, I don't know what else to do. B-)
Technical details: * The graph traversal in propagate() is modified to be able to start from any point in the tree. To handle certain exceptional cases, it is also modified to work in two passes, marking the tree with a special tag and then changing it to DFOUND. * The reconnect case now modifies the child/sibling pointers and calls propagate() to propagate the connection state starting with the reconnected directory.
Pray that you never encounter a file system trashed enough for this to matter.
|
| 1.28 | 14-Dec-2000 |
simonb | Need an lfdir global variable now.
|
| 1.27 | 03-Aug-2000 |
castor | Fix an evil ugly bug which causes files placed into lost+found to be inconsistent, and unremovable. From Ethan Solomita <ethan@geocast.com>. Reviewed by fvdl.
|
| 1.26 | 15-Nov-1999 |
fvdl | branches: 1.26.4; Changes for softdep code.
|
| 1.25 | 18-Mar-1998 |
bouyer | branches: 1.25.2; 1.25.4; 1.25.8; Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.24 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.23 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.22 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.21 | 21-Apr-1997 |
mrg | lost+found directories are mode -1700
|
| 1.20 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.19 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.18 | 11-Jun-1996 |
mycroft | Use a different tree-walking algorithm in propagate().
|
| 1.17 | 18-Mar-1995 |
cgd | branches: 1.17.4; convert to new RCS Id conventions; reduce my headache
|
| 1.16 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.15 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.14 | 28-Oct-1994 |
mycroft | On a recursive call to fsck_readdir() through getpathname(), don't attempt to fix a problem that's already being fixed.
|
| 1.13 | 06-Oct-1994 |
mycroft | dircheck() shouldn't be looking at d_type or d_namlen in blank entries *at all*. Not only is it wrong, but it causes a serious problem on little-endian machines, since after -c2 conversion, d_type will often be > 15.
|
| 1.12 | 23-Sep-1994 |
mycroft | Remove some more uses of obsolete functions.
|
| 1.11 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.10 | 20-Sep-1994 |
mycroft | A correct fix for the byte order problem when reconnecting.
|
| 1.9 | 29-Jul-1994 |
mycroft | Fix oversight in last patch.
|
| 1.8 | 28-Jul-1994 |
mycroft | Fix byte-order problem with directory entry creation.
|
| 1.7 | 08-Jun-1994 |
mycroft | branches: 1.7.2; Update from 4.4-Lite, with local changes.
|
| 1.6 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.5 | 05-Nov-1993 |
mycroft | Patch from Bruce Evans to deal with file names with NULs in them.
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.7.2.5 | 07-Nov-1994 |
cgd | for patch #2
|
| 1.7.2.4 | 06-Oct-1994 |
mycroft | dircheck() shouldn't be looking at d_type or d_namlen in blank entries *at all*. Not only is it wrong, but it causes a serious problem on little-endian machines, since after -c2 conversion, d_type will often be > 15.
|
| 1.7.2.3 | 20-Sep-1994 |
mycroft | A correct fix for the byte order problem when reconnecting.
|
| 1.7.2.2 | 29-Jul-1994 |
cgd | from trunk.
|
| 1.7.2.1 | 28-Jul-1994 |
cgd | from trunk.
|
| 1.17.4.1 | 10-Dec-1996 |
mycroft | From trunk: * Redo the tree-walking algorithm to make it O(n) rather than O(n^2). * Fix some minor type size problems.
|
| 1.25.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.25.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.25.2.1 | 22-Aug-2000 |
castor | pullup changes between 1.26 and 1.27
revision 1.27 date: 2000/08/03 14:52:39; author: castor; state: Exp; lines: +12 -2 Fix an evil ugly bug which causes files placed into lost+found to be inconsistent, and unremovable. From Ethan Solomita <ethan@geocast.com>. Reviewed by fvdl.
pullup requested by Haavard Eidnes -- assuming that this was actually a request from releng-1-4.
|
| 1.26.4.2 | 24-Nov-2001 |
he | Pull up revisions 1.28-1.32 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.26.4.1 | 03-Aug-2000 |
castor | Pullup changes between 1.26 and 1.27 from -current. Requested by castor. Approved by thorpej.
> revision 1.27 > date: 2000/08/03 14:52:39; author: castor; state: Exp; lines: +12 -2 > Fix an evil ugly bug which causes files placed into lost+found to > be inconsistent, and unremovable. From Ethan Solomita <ethan@geocast.com>. > Reviewed by fvdl.
|
| 1.49.18.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.49.18.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.49.16.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.49.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.50.6.1 | 18-Jul-2008 |
simonb | Sync with head.
|
| 1.50.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.51.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
| 1.52.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.53.10.3 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.53.10.2 | 23-Jun-2013 |
tls | resync from head
|
| 1.53.10.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.53.4.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.53.4.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.57.14.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.57.10.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.58.12.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.58.10.1 | 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
| 1.29 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.28 | 17-Nov-2022 |
chs | Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.27 | 09-Jun-2011 |
christos | share more code.
|
| 1.26 | 06-Mar-2011 |
bouyer | branches: 1.26.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.25 | 13-Sep-2009 |
bouyer | branches: 1.25.2; Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.24 | 30-Aug-2008 |
bouyer | branches: 1.24.2; 1.24.8; Add fss(4) snapshot support to fsck_ffs(8) (via -x or -X options, like dump(8)). This allows fsck_ffs -n to work on a snapshot of a R/W mounted filesystem, and avoid errors related to filesystem activity.
|
| 1.23 | 31-Jul-2008 |
simonb | Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.22 | 27-Jun-2005 |
christos | branches: 1.22.20; 1.22.24; 1.22.26; sprinkle const.
|
| 1.21 | 20-Jan-2005 |
xtraeme | whitespace (pointed out by wiz@)
|
| 1.20 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.19 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.18 | 13-Jul-2003 |
itojun | use bounded string op
|
| 1.17 | 06-Apr-2003 |
fvdl | Write update some old fields when writing the superblock, similar to ffs_oldfscompat_write() in the kernel. Use the old totals when time < old_time (i.e. an old kernel or fsck wrote the filesystem last). When setting the date back on a new kernel, that works out ok, since new kernels always update both fields.
|
| 1.16 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.15 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.14 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.13 | 04-Feb-2001 |
christos | remove redundant declarations
|
| 1.12 | 26-Jan-2001 |
thorpej | In pass 5, check alternate superblocks for consistency with the current in-core master superblock, and fix them up if they're incorrect. Move the code that writes the alternate superblocks if (cvtlevel || doswap) into pass 5 for efficiency.
Reviewd by Charles Hannum, and used by me to fix up a curdled file system.
|
| 1.11 | 09-Jan-2001 |
mycroft | The reconnect algorithm was historically O(n^4). Some years ago I made it O(n^2). Someone helpfully made it O(n^4) again. Today I'm making it O(n). If that's not good enough, I don't know what else to do. B-)
Technical details: * The graph traversal in propagate() is modified to be able to start from any point in the tree. To handle certain exceptional cases, it is also modified to work in two passes, marking the tree with a special tag and then changing it to DFOUND. * The reconnect case now modifies the child/sibling pointers and calls propagate() to propagate the connection state starting with the reconnected directory.
Pray that you never encounter a file system trashed enough for this to matter.
|
| 1.10 | 26-Jul-1998 |
mycroft | branches: 1.10.12; const poisoning.
|
| 1.9 | 26-Jul-1998 |
mycroft | Remove redundant declaration.
|
| 1.8 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.7 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.6 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.5 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.4 | 12-Apr-1995 |
mycroft | Set the clean flag if necessary. If preening, don't check `clean' file systems.
|
| 1.3 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.2 | 06-Dec-1994 |
cgd | adjust; from jimj.
|
| 1.1 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.10.12.1 | 24-Nov-2001 |
he | Pull up revisions 1.11-1.13 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.22.26.2 | 28-Jul-2008 |
simonb | Add support for creating a WAPBL log in the filesystem. Will create an in-filesystem log on first "mount -o log" if one doesn't exist, and will then continue to use same log in the future. See (soon to be added) wapbl(4) for more info.
Adds a new B_CONTIG low-level allocation flag that uses hints in "struct ffs_inode_ext" to lay out an ffs file's data contiguously.
Thanks to Greg Oster for helping with the design of this and to Antti Kantee for code review and suggestions.
|
| 1.22.26.1 | 10-Jun-2008 |
simonb | Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
Still a number of issues - look in doc/BRANCHES for "simonb-wapbl" for more info.
|
| 1.22.24.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.22.20.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.24.8.1 | 21-Apr-2010 |
matt | sync to netbsd-5
|
| 1.24.2.1 | 03-Oct-2009 |
snj | Pull up following revision(s) (requested by bouyer in ticket #1036): sbin/fsck_ffs/extern.h: revision 1.25 via patch sbin/fsck_ffs/setup.c: revision 1.88 via patch sbin/fsck_ffs/wapbl.c: revision 1.4 via patch sbin/tunefs/tunefs.c: revision 1.41 via patch sys/ufs/ffs/ffs_vfsops.c: revision 1.252 via patch sys/ufs/ffs/ffs_wapbl.c: revision 1.13 via patch Allow tunefs to clear any type of WAPBL log, not only in-filesystem ones. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- If the WAPBL journal can't be read (ffs_wapbl_replay_start() fails), mount the filesystem anyway if MNT_FORCE is present. This allows to still boot single-user a system with a corrupted WAPBL on /, and so get a chance to run fsck to fix it. http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.25.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.26.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.2 | 21-Sep-1997 |
lukem | unnecessary file from lite-2 merge
|
| 1.1 | 16-Sep-1997 |
lukem | branches: 1.1.1; Initial revision
|
| 1.1.1.1 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.59 | 04-Mar-2025 |
andvar | s/ownerchip/ownership/ in comment.
|
| 1.58 | 04-Jul-2023 |
riastradh | branches: 1.58.2; fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.57 | 14-Jan-2023 |
christos | catch up with sign changes in the fs.h
|
| 1.56 | 17-Nov-2022 |
chs | branches: 1.56.2; Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.55 | 18-Apr-2020 |
jdolecek | add NO_IOBUF_ALIGNED to not pull aligned_alloc() for really constrained boot media
|
| 1.54 | 05-Apr-2020 |
joerg | Fix depenency on common symbols in sbin.
|
| 1.53 | 05-May-2019 |
christos | Add a -z flag to zero out the up to 4 bytes of padding in directory entry names (including the terminating NUL), as well as directory entries with extra free space (d->d_reclen > UFS_DIRSIZ(d)).
Inspired from FreeBSD: https://svnweb.freebsd.org/base?view=revision&revision=347066
While the kernel has been fixed to deal with the padding bytes (new kernels will correctly zero out all the padding after the name), it appears that there is still an issue with directory entries with extra free space, since a newly created and populated filesystem gets modified with "fsck_ffs -z".
|
| 1.52 | 08-Feb-2017 |
rin | branches: 1.52.12; __empty -> __nothing
|
| 1.51 | 08-Feb-2017 |
christos | use __empty
|
| 1.50 | 08-Feb-2017 |
rin | Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.49 | 06-Mar-2011 |
bouyer | branches: 1.49.26; 1.49.30; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.48 | 12-Sep-2010 |
drochner | branches: 1.48.2; minimal ansification/constification
|
| 1.47 | 09-Oct-2008 |
christos | Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.46 | 23-Feb-2008 |
christos | Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.45 | 21-Apr-2006 |
skrll | branches: 1.45.4; 1.45.10; 1.45.18; 1.45.20; Don't use cast expressions as lvalues as newer versions of gcc warn.
|
| 1.44 | 24-Dec-2005 |
perry | Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
|
| 1.43 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.42 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.41 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.40 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.39 | 20-Jul-2004 |
mycroft | Reduce memory usage slightly.
|
| 1.38 | 25-May-2004 |
hannken | Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
| 1.37 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.36 | 20-Oct-2003 |
dsl | Add a -q (quiet) option to print nothing for clean filesystems. Support in fsck_ffs and stub in fsck_xxx. Push a few more messages through pwarn() instead of printf() to ensure disk name is shown.
|
| 1.35 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.34 | 24-Apr-2003 |
fvdl | Oops. The clearinode macro had the UFS2 case reversed, causing it to zero out two inodes in the plain FFS case, since UFS2 dinodes are twice as big.
|
| 1.33 | 06-Apr-2003 |
fvdl | Write update some old fields when writing the superblock, similar to ffs_oldfscompat_write() in the kernel. Use the old totals when time < old_time (i.e. an old kernel or fsck wrote the filesystem last). When setting the date back on a new kernel, that works out ok, since new kernels always update both fields.
|
| 1.32 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.31 | 29-Mar-2003 |
wiz | Consistently spell occurrence with two rs.
|
| 1.30 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.29 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.28 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.27 | 17-Aug-2001 |
lukem | remove third argument (`int ns') from ffs_sb_swap(), and let ffs_sb_swap() determine the endianness of the `struct fs *o' superblock from o->fs_magic and set needswap as necessary, rather than trusting the caller to get it right. invariably, almost every caller of ffs_sb_swap() was calling it with ns set to the wrong value for ns anyway! ansi KNF ffs_bswap.c declarations whilst here.
this fixes all sorts of problems when trying to use other-endian file systems, notably the kernel trying to access memory *way* off, possibly corrupting or panicing, and userland programs SEGVing and/or corrupting things (e.g, "fsck_ffs -B" to swap a file system endianness).
whilst the previous rev of ffs_bswap.c (1.10, 2000/12/23) made this problem worse, i suspect that the problem was always there and previous versions just happened not to trash things at the wrong time.
FFS_EI should now be a lot more stable.
|
| 1.26 | 15-Aug-2001 |
lukem | - implement -F; treat provided filesystems as images in regular files - replace "filesystem" with "file system" as appropriate - grammar fixes
|
| 1.25 | 15-Aug-2001 |
lukem | minor whitespace cleanup
|
| 1.24 | 04-Feb-2001 |
christos | remove redundant declarations
|
| 1.23 | 26-Jan-2001 |
thorpej | In pass 5, check alternate superblocks for consistency with the current in-core master superblock, and fix them up if they're incorrect. Move the code that writes the alternate superblocks if (cvtlevel || doswap) into pass 5 for efficiency.
Reviewd by Charles Hannum, and used by me to fix up a curdled file system.
|
| 1.22 | 09-Jan-2001 |
mycroft | The reconnect algorithm was historically O(n^4). Some years ago I made it O(n^2). Someone helpfully made it O(n^4) again. Today I'm making it O(n). If that's not good enough, I don't know what else to do. B-)
Technical details: * The graph traversal in propagate() is modified to be able to start from any point in the tree. To handle certain exceptional cases, it is also modified to work in two passes, marking the tree with a special tag and then changing it to DFOUND. * The reconnect case now modifies the child/sibling pointers and calls propagate() to propagate the connection state starting with the reconnected directory.
Pray that you never encounter a file system trashed enough for this to matter.
|
| 1.21 | 13-Dec-2000 |
scw | Some more `extern's for initialised globals.
|
| 1.20 | 15-Nov-1999 |
fvdl | branches: 1.20.4; Update for softdep code.
|
| 1.19 | 15-Jan-1999 |
bouyer | branches: 1.19.4; 1.19.8; #include machine/bswap.h and remove -lutil.
|
| 1.18 | 23-Oct-1998 |
thorpej | Use DINODE_SIZE rather than sizeof(struct dinode) and/or pointer arithmetic.
|
| 1.17 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.16 | 21-Sep-1997 |
lukem | a quad_t is an int64_t, not a u_int64_t...
|
| 1.15 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.14 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.13 | 11-Oct-1996 |
thorpej | Bug fix from Kirk McKusick <mckusick@McKusick.COM>:
Fix a bug in fsck_ffs where if a directory somehow develops a hole (that is a block pointer that has a value of zero), fsck would give the filesystem a clean bill of health, but the kernel would panic when accessing the directory with the hole. Fsck now checks for holes in directories. If found in preen mode, fsck fails. In manual mode, it can be directed to shorten the directory to the beginning of the hole. A more complete solution would be to allocate a block to fill the hole. However, this is a lot more work for a `cannot happen' error, so the extra effort seems unwarranted.
|
| 1.12 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.11 | 11-Jun-1996 |
mycroft | Use a different tree-walking algorithm in propagate().
|
| 1.10 | 12-Apr-1995 |
mycroft | branches: 1.10.4; Set the clean flag if necessary. If preening, don't check `clean' file systems.
|
| 1.9 | 21-Mar-1995 |
cgd | type sizes
|
| 1.8 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.7 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 02-May-1994 |
pk | Prototype some things.
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.10.4.2 | 02-Mar-1997 |
mycroft | Pull up changes from Kirk McKusick to check for holes in directories.
|
| 1.10.4.1 | 10-Dec-1996 |
mycroft | From trunk: * Redo the tree-walking algorithm to make it O(n) rather than O(n^2). * Fix some minor type size problems.
|
| 1.19.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.19.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.20.4.2 | 25-Nov-2001 |
he | Pull up revision 1.27 (requested by lukem): Call ffs_sb_swap() with the correct arguments. Fixes problems with using other-endian file systems.
|
| 1.20.4.1 | 24-Nov-2001 |
he | Pull up revisions 1.21-1.24 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.45.20.2 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.45.20.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.45.18.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.45.10.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.45.4.1 | 24-Mar-2009 |
bouyer | Pull up following revision(s) (requested by manu in ticket #1288): sbin/fsck_lfs/inode.c: revision 1.40 via patch sbin/fsck_ffs/fsck_ffs.8: revision 1.44 via patch sbin/fsck_ext2fs/fsck.h: revision 1.14 via patch sbin/fsck_ext2fs/main.c: revision 1.30 via patch sbin/fsck_ffs/inode.c: revision 1.61 via patch sbin/fsck_ffs/main.c: revision 1.71 via patch sbin/fsck_ext2fs/inode.c: revision 1.23 via patch sbin/fsck_lfs/fsck.h: revision 1.18 via patch sbin/fsck_lfs/fsck_lfs.8: revision 1.21 via patch sbin/fsck_lfs/main.c: revision 1.38 via patch sbin/fsck_ext2fs/fsck_ext2fs.8: revision 1.15 via patch sbin/fsck_ffs/fsck.h: revision 1.47 via patch Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.48.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.49.30.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.49.26.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.52.12.3 | 21-Apr-2020 |
martin | Sync with HEAD
|
| 1.52.12.2 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
| 1.52.12.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.56.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #162):
sbin/fsck_ffs/inode.c: revision 1.74 sbin/fsck_ffs/utilities.c: revision 1.68 sbin/fsck_ffs/fsck.h: revision 1.57 sbin/fsck_ffs/pass4.c: revision 1.30
catch up with sign changes in the fs.h
|
| 1.58.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.52 | 17-Nov-2022 |
chs | Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.51 | 05-May-2019 |
christos | Add a -z flag to zero out the up to 4 bytes of padding in directory entry names (including the terminating NUL), as well as directory entries with extra free space (d->d_reclen > UFS_DIRSIZ(d)).
Inspired from FreeBSD: https://svnweb.freebsd.org/base?view=revision&revision=347066
While the kernel has been fixed to deal with the padding bytes (new kernels will correctly zero out all the padding after the name), it appears that there is still an issue with directory entries with extra free space, since a newly created and populated filesystem gets modified with "fsck_ffs -z".
|
| 1.50 | 11-Sep-2016 |
sevan | branches: 1.50.14; Document the version fsck_ffs first appeared. Bump date.
|
| 1.49 | 06-Mar-2012 |
wiz | Mention scan_ffs -b. Based on a patch by Matthew Mondor <mm_lists@pulsar-zone.net> on tech-userlevel. Bump date.
|
| 1.48 | 14-May-2011 |
dholland | branches: 1.48.4; Improve documentation of FFS formats and format levels from PR 32100. Prompted also by recent discussion on tech-kern. Bump date.
|
| 1.47 | 29-Apr-2011 |
wiz | Re-add -q description that got lost when -x was added. Sort descriptions. Bump date.
|
| 1.46 | 07-May-2009 |
wiz | New sentence, new line.
|
| 1.45 | 07-May-2009 |
lukem | Use "FFSv2" instead of "UFS2". Expand the description of -c. Xref dumpfs.
|
| 1.44 | 09-Oct-2008 |
christos | branches: 1.44.4; Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.43 | 30-Aug-2008 |
gdt | Add an explanation of why one would want to use -x/-X, after discussion with bouyer@.
|
| 1.42 | 30-Aug-2008 |
bouyer | Add fss(4) snapshot support to fsck_ffs(8) (via -x or -X options, like dump(8)). This allows fsck_ffs -n to work on a snapshot of a R/W mounted filesystem, and avoid errors related to filesystem activity.
|
| 1.41 | 31-Jul-2008 |
simonb | Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.40 | 19-Jan-2005 |
wiz | branches: 1.40.10; 1.40.26; 1.40.30; 1.40.32; Sort options. Bump date for -P. Remove superfluous -.
|
| 1.39 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.38 | 02-Jun-2004 |
fair | Correct a misnumbering of options, as noted in PR 25784.
|
| 1.37 | 05-May-2004 |
wiz | Various improvements; mostly mention arguments of flags by name to simplify the description and improve lists.
|
| 1.36 | 09-Jan-2004 |
wiz | branches: 1.36.2; Update Dd for previous and fix a case.
|
| 1.35 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.34 | 20-Oct-2003 |
dsl | Add a -q (quiet) option to print nothing for clean filesystems. Support in fsck_ffs and stub in fsck_xxx. Push a few more messages through pwarn() instead of printf() to ensure disk name is shown.
|
| 1.33 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.32 | 25-Feb-2003 |
wiz | .Nm does not need a dummy argument ("") before punctuation or for correct formatting of the SYNOPSIS any longer.
|
| 1.31 | 01-Oct-2002 |
wiz | New sentence, new line. By Robert Elz with minimal fixes.
|
| 1.30 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.29 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.28 | 07-Feb-2002 |
ross | Edit -mdoc usage.
* There is no -indent option to .Bd or .Bl, although you would never know that from its frequent use in this tree. There is a "-offset indent" combination that makes sense, and you can certainly say "-width indent".
* Also, you can't markup the -width option argument, tho you CAN use a callable macro. So "-width Ar filename" doesn't make sense, but either "-width Ar" or "-width filename" does, as might something like "-width xxfilename" for a little extra space.
* There are a lot of needlessly complex hanging tag macros in man4 used to create simple item lists. Those should be simplified one of these days before someone copies and edits yet another man4 page.
|
| 1.27 | 16-Nov-2001 |
wiz | Sort SEE ALSO, whitespace nits.
|
| 1.26 | 16-Nov-2001 |
lukem | - changes to -F semantics: - remove the restriction that filesystem must be a regular file - don't try and read a disklabel - use `p' (instead of `h') as the index of the last partition
|
| 1.25 | 15-Aug-2001 |
lukem | - implement -F; treat provided filesystems as images in regular files - replace "filesystem" with "file system" as appropriate - grammar fixes
|
| 1.24 | 05-Jun-2001 |
wiz | Drop arguments of .Os.
|
| 1.23 | 07-Mar-1999 |
mycroft | Clean up SYNOPSIS formatting.
|
| 1.22 | 25-May-1998 |
msaitoh | fix typo.
|
| 1.21 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.20 | 15-Sep-1997 |
lukem | use .Nm correctly
|
| 1.19 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.18 | 21-Apr-1997 |
mrg | lost+found directories are mode -1700
|
| 1.17 | 21-Apr-1997 |
lukem | The fs level (ref: fsck -c ...) can be determined from the second line of the output from dumpfs(8), not the first line. part of [bin/1353]
|
| 1.16 | 08-Mar-1997 |
mouse | alternate -> alternative, per PR 2643
|
| 1.15 | 27-Dec-1996 |
mikel | fix reboot(8) xref
|
| 1.14 | 26-Dec-1996 |
mikel | eliminate obsolete references to mkfs(8); from Klaus Klein <kleink@layla.inka.de>
|
| 1.13 | 22-Oct-1996 |
christos | Update this to reflect reality after the fsck/fsck_ffs split.
|
| 1.12 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.11 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.10 | 12-Jul-1995 |
cgd | implement a 'force check' flag, '-f'. I used the SunOS name, but the Digital semantics. now: (1) dirty file systems will always be checked; nothing new there. (2) if not '-f' clean file systems will _NEVER_ be checked, i.e. they won't be checked even if -p isn't specified. This allows one to 'fsck -p ; fsck' to preen, then clean up anything that 'fsck -p' barfs on, without waiting for the clean file systems to be checked again. (3) if '-f' clean file systems will ALWAYS be checked. This allows people to put 'fsck -fp' into /etc/rc on systems where they're leery of the FS clean flag state, need the extra reliability, and can afford time 'wasted' in checks. The assumption made here is that if a file system is marked clean, it _IS CLEAN_, really, and shouldn't be checked unless fsck is explicitly told to (with -f). This should be a valid assumption, but may not be in the presence of file system bugs. Documentation updated to note '-f'.
|
| 1.9 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.8 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.7 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.6 | 13-Apr-1994 |
deraadt | typo
|
| 1.5 | 05-Aug-1993 |
jtc | Updated to -mandoc macros.
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS indentifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.36.2.1 | 06-Jun-2004 |
jdc | Pull up revision 1.38 (via patch) (requested by fair in ticket #435).
Correct a misnumbering of options, as noted in PR 25784.
|
| 1.40.32.1 | 28-Jul-2008 |
simonb | Add support for creating a WAPBL log in the filesystem. Will create an in-filesystem log on first "mount -o log" if one doesn't exist, and will then continue to use same log in the future. See (soon to be added) wapbl(4) for more info.
Adds a new B_CONTIG low-level allocation flag that uses hints in "struct ffs_inode_ext" to lay out an ffs file's data contiguously.
Thanks to Greg Oster for helping with the design of this and to Antti Kantee for code review and suggestions.
|
| 1.40.30.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.40.26.2 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.40.26.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.40.10.1 | 24-Mar-2009 |
bouyer | Pull up following revision(s) (requested by manu in ticket #1288): sbin/fsck_lfs/inode.c: revision 1.40 via patch sbin/fsck_ffs/fsck_ffs.8: revision 1.44 via patch sbin/fsck_ext2fs/fsck.h: revision 1.14 via patch sbin/fsck_ext2fs/main.c: revision 1.30 via patch sbin/fsck_ffs/inode.c: revision 1.61 via patch sbin/fsck_ffs/main.c: revision 1.71 via patch sbin/fsck_ext2fs/inode.c: revision 1.23 via patch sbin/fsck_lfs/fsck.h: revision 1.18 via patch sbin/fsck_lfs/fsck_lfs.8: revision 1.21 via patch sbin/fsck_lfs/main.c: revision 1.38 via patch sbin/fsck_ext2fs/fsck_ext2fs.8: revision 1.15 via patch sbin/fsck_ffs/fsck.h: revision 1.47 via patch Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.44.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
| 1.48.4.1 | 17-Apr-2012 |
yamt | sync with head
|
| 1.50.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.79 | 25-Feb-2025 |
andvar | Fix a few typos in the word 'offset' in comments and error message.
|
| 1.78 | 05-Jul-2023 |
riastradh | branches: 1.78.2; Revert "fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S)."
C17 lifted this restriction.
|
| 1.77 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.76 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S).
Required by C11 Sec. 7.22.3.1 The aligned_alloc function, para. 2, p. 348:
The value of alignment shall be a valid alignment supported by the implementation and the value of size shall be an integral multiple of alignment.
XXX pullup-10
|
| 1.75 | 14-Jan-2023 |
kre | Use %zu rather than %lu to print a size_t (should fix i386 build).
But, philosophical question, shouldn't the product of two size_t variables really be an area_t, or something like that?
|
| 1.74 | 14-Jan-2023 |
christos | catch up with sign changes in the fs.h
|
| 1.73 | 17-Apr-2020 |
jdolecek | branches: 1.73.6; align buffers used for I/O to DEV_BSIZE so it's executed more optimally when run for xbd(4) raw (character) device
|
| 1.72 | 08-Feb-2017 |
rin | branches: 1.72.12; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.71 | 05-Apr-2014 |
justin | branches: 1.71.8; 1.71.12; Iterate over fields of struct seperately to avoid warnings from pedantic compilers
|
| 1.70 | 02-Dec-2013 |
bouyer | Fix pasto in the !ufs2 case (use dp->dp1 and not of dp->dp2). This would be a problem only when allocating a new data block and the indir block is already allocated, which explains why automated tests didn't find it. Problem reported on tech-kern@ and fix tested by manu@.
|
| 1.69 | 23-Jun-2013 |
dholland | Stick ffs_ in front of the following macros: fragstoblks() blkstofrags() fragnum() blknum()
to finish the job of distinguishing them from the lfs versions, which Christos renamed the other day.
I believe this is the last of the overtly ambiguous exported symbols from ffs... or at least, the last of the ones that conflicted with lfs. ffs still pollutes the C namespace very broadly (as does ufs) and this needs quite a bit more cleanup.
XXX: boo on macros with lowercase names. But I'm not tackling that just yet.
|
| 1.68 | 23-Jun-2013 |
dholland | Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of the following symbols so as to disambiguate fully. (Christos already did the lfs ones.)
lblkno lblktosize lfragtosize numfrags blkroundup fragroundup
|
| 1.67 | 23-Jun-2013 |
dholland | fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB() dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()
(Christos already did the lfs ones a few days back)
|
| 1.66 | 19-Jun-2013 |
dholland | Rename ambiguous macros: MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR INOPB -> FFS_INOPB, LFS_INOPB INOPF -> FFS_INOPF, LFS_INOPF blksize -> ffs_blksize, ext2_blksize, or lfs_blksize sblksize -> ffs_blksize
These are not the only ambiguously defined filesystem macros, of course, there's a pile more. I may not have found all the ambiguous definitions of blksize(), too, as there are a lot of other things called 'blksize' in the system.
|
| 1.65 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.64 | 06-Mar-2011 |
bouyer | branches: 1.64.4; 1.64.6; 1.64.10; 1.64.12; 1.64.14; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.63 | 04-Feb-2010 |
christos | branches: 1.63.2; Centralize time printing and deal with ctime possibly returning NULL.
|
| 1.62 | 11-Apr-2009 |
lukem | fix sign-compare issues
|
| 1.61 | 09-Oct-2008 |
christos | branches: 1.61.4; Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.60 | 08-Jul-2008 |
simonb | Fix funny whitespace in a variable assignment.
|
| 1.59 | 23-Feb-2008 |
christos | branches: 1.59.4; 1.59.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.58 | 12-Apr-2007 |
chs | branches: 1.58.4; 1.58.10; 1.58.12; apply revision 1.31 yet again: "make sure that we don't try to allocate negative memory when blks == 0." or on amd64, "make sure that we don't allocate 32 GB when blks == 0."
|
| 1.57 | 21-Apr-2006 |
skrll | branches: 1.57.4; Don't use cast expressions as lvalues as newer versions of gcc warn.
|
| 1.56 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.55 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.54 | 02-Jun-2005 |
lukem | appease gcc -Wuninitialized
|
| 1.53 | 30-Apr-2005 |
christos | Remove stray " I" from message.
|
| 1.52 | 30-Apr-2005 |
christos | Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.51 | 20-Jan-2005 |
xtraeme | branches: 1.51.2; whitespace (pointed out by wiz@)
|
| 1.50 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.49 | 08-Oct-2004 |
dbj | when allocating inodes, such as for the lost+found directory, extend the inostat array if needed. Otherwise, inoinfo() will return the static "unallocated" inode template, which was getting improperly modified. Before this fix, any time the lost+found directory got created, fsck would set all of the inode/directory counts wrong since suddenly unallocated inodes would turn into directory inodes
|
| 1.48 | 20-Jul-2004 |
mycroft | Reduce memory usage slightly.
|
| 1.47 | 25-May-2004 |
hannken | Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
| 1.46 | 26-Apr-2004 |
dbj | fix 64bit bug in chkrange() problem noticed by nathanw fix from freebsd
|
| 1.45 | 03-Jan-2004 |
dbj | branches: 1.45.2; fix logic for handling symlinks in inodes when isappleufs
|
| 1.44 | 03-Jan-2004 |
dbj | when doing both -c 2 and -B, swap the blocks listed in the inode of symlinks, since the swapping happens before the symlinks are moved into the inode.
|
| 1.43 | 03-Jan-2004 |
dbj | fix paste-o in previous commit
|
| 1.42 | 03-Jan-2004 |
dbj | fix bugs with unsigned comparison ofs fs_maxsymlinklen
|
| 1.41 | 19-Sep-2003 |
itojun | realloc pedant
|
| 1.40 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.39 | 13-Jul-2003 |
itojun | use bounded string op
|
| 1.38 | 08-Apr-2003 |
fvdl | Swap the right blocks in an inode in the byteswapping case.
|
| 1.37 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.36 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.35 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.34 | 05-Jan-2001 |
lukem | use %ll_ instead of the less standard %q_
|
| 1.33 | 12-Dec-1999 |
christos | - ARGH /brick fvdl - Put back the change from revision 1.31
|
| 1.32 | 15-Nov-1999 |
fvdl | Changes for softdep code.
|
| 1.31 | 06-Sep-1999 |
christos | branches: 1.31.4; make sure that we don't try to allocate negative memory when blks == 0.
|
| 1.30 | 23-Oct-1998 |
thorpej | branches: 1.30.4; Use DINODE_SIZE rather than sizeof(struct dinode) and/or pointer arithmetic.
|
| 1.29 | 28-Jul-1998 |
mycroft | __AUDIT__ cleanup.
|
| 1.28 | 01-Apr-1998 |
kleink | Need <time.h> for ctime() and time() prototypes.
|
| 1.27 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.26 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.25 | 16-Sep-1997 |
mrg | make these compile on the alpha after WARNS=1.
|
| 1.24 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.23 | 11-Oct-1996 |
thorpej | Bug fix from Kirk McKusick <mckusick@McKusick.COM>:
Fix a bug in fsck_ffs where if a directory somehow develops a hole (that is a block pointer that has a value of zero), fsck would give the filesystem a clean bill of health, but the kernel would panic when accessing the directory with the hole. Fsck now checks for holes in directories. If found in preen mode, fsck fails. In manual mode, it can be directed to shorten the directory to the beginning of the hole. A more complete solution would be to allocate a block to fill the hole. However, this is a lot more work for a `cannot happen' error, so the extra effort seems unwarranted.
|
| 1.22 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.21 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.20 | 11-Jun-1996 |
mycroft | Use a different tree-walking algorithm in propagate().
|
| 1.19 | 25-May-1996 |
mycroft | File sizes in FFS are u_int64_t.
|
| 1.18 | 21-May-1996 |
mycroft | branches: 1.18.2; Adjust the logic a bit so we `nif' can't overflow.
|
| 1.17 | 17-Dec-1995 |
thorpej | Squish some type bugs pointed out by Jonathan Stone.
|
| 1.16 | 14-Dec-1995 |
thorpej | Make this compile with -Werror.
|
| 1.15 | 07-Jun-1995 |
cgd | typeof(timeval.tv_sec) != time_t
|
| 1.14 | 20-Mar-1995 |
mycroft | Make sure to recreate the `..' entry in the root directory if missing.
|
| 1.13 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.12 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.11 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.10 | 14-Jun-1994 |
mycroft | Fix compatibility with old fastlinks.
|
| 1.9 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.8 | 02-May-1994 |
pk | Prototype some things.
|
| 1.7 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.6 | 18-Apr-1994 |
cgd | kill some code if SMALL is defined...
|
| 1.5 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.4 | 13-Jun-1993 |
mycroft | Add support for fast symlinks.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.18.2.2 | 02-Mar-1997 |
mycroft | Pull up changes from Kirk McKusick to check for holes in directories.
|
| 1.18.2.1 | 10-Dec-1996 |
mycroft | From trunk: * Redo the tree-walking algorithm to make it O(n) rather than O(n^2). * Fix some minor type size problems.
|
| 1.30.4.2 | 26-Oct-1999 |
fvdl | Fix some merge mistakes.
|
| 1.30.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.31.4.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.45.2.1 | 28-Apr-2004 |
jmc | branches: 1.45.2.1.2; Pullup rev 1.46 (requested by dbj in ticket #202)
Fix 64bit bug in chkrange().
|
| 1.45.2.1.2.1 | 01-May-2005 |
tron | Pull up revision 1.52 (requested by christos in ticket #1493): Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.51.2.1 | 01-May-2005 |
tron | Pull up revision 1.52 (requested by christos in ticket #228): Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.57.4.2 | 24-Mar-2009 |
bouyer | Pull up following revision(s) (requested by manu in ticket #1288): sbin/fsck_lfs/inode.c: revision 1.40 via patch sbin/fsck_ffs/fsck_ffs.8: revision 1.44 via patch sbin/fsck_ext2fs/fsck.h: revision 1.14 via patch sbin/fsck_ext2fs/main.c: revision 1.30 via patch sbin/fsck_ffs/inode.c: revision 1.61 via patch sbin/fsck_ffs/main.c: revision 1.71 via patch sbin/fsck_ext2fs/inode.c: revision 1.23 via patch sbin/fsck_lfs/fsck.h: revision 1.18 via patch sbin/fsck_lfs/fsck_lfs.8: revision 1.21 via patch sbin/fsck_lfs/main.c: revision 1.38 via patch sbin/fsck_ext2fs/fsck_ext2fs.8: revision 1.15 via patch sbin/fsck_ffs/fsck.h: revision 1.47 via patch Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.57.4.1 | 12-Apr-2007 |
bouyer | Pull up following revision(s) (requested by chs in ticket #568): sbin/fsck_ffs/inode.c: revision 1.58 apply revision 1.31 yet again: "make sure that we don't try to allocate negative memory when blks == 0." or on amd64, "make sure that we don't allocate 32 GB when blks == 0."
|
| 1.58.12.3 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.58.12.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.58.12.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.58.10.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.58.4.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.59.6.1 | 18-Jul-2008 |
simonb | Sync with head.
|
| 1.59.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.61.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
| 1.63.2.3 | 12-Feb-2011 |
bouyer | Skip snapshot inodes for both block and inode quotas.
|
| 1.63.2.2 | 12-Feb-2011 |
bouyer | Snapshot inode doesn't count for block quotas.
|
| 1.63.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.64.14.1 | 17-Dec-2013 |
riz | Pull up following revision(s) (requested by bouyer in ticket #991): sbin/fsck_ffs/inode.c: revision 1.70 Fix pasto in the !ufs2 case (use dp->dp1 and not of dp->dp2). This would be a problem only when allocating a new data block and the indir block is already allocated, which explains why automated tests didn't find it. Problem reported on tech-kern@ and fix tested by manu@.
|
| 1.64.12.1 | 17-Dec-2013 |
riz | Pull up following revision(s) (requested by bouyer in ticket #991): sbin/fsck_ffs/inode.c: revision 1.70 Fix pasto in the !ufs2 case (use dp->dp1 and not of dp->dp2). This would be a problem only when allocating a new data block and the indir block is already allocated, which explains why automated tests didn't find it. Problem reported on tech-kern@ and fix tested by manu@.
|
| 1.64.10.3 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.64.10.2 | 23-Jun-2013 |
tls | resync from head
|
| 1.64.10.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.64.6.1 | 17-Dec-2013 |
riz | Pull up following revision(s) (requested by bouyer in ticket #991): sbin/fsck_ffs/inode.c: revision 1.70 Fix pasto in the !ufs2 case (use dp->dp1 and not of dp->dp2). This would be a problem only when allocating a new data block and the indir block is already allocated, which explains why automated tests didn't find it. Problem reported on tech-kern@ and fix tested by manu@.
|
| 1.64.4.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.64.4.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.71.12.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.71.8.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.72.12.1 | 21-Apr-2020 |
martin | Sync with HEAD
|
| 1.73.6.2 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #163):
sbin/fsck_ffs/inode.c: revision 1.75
Use %zu rather than %lu to print a size_t (should fix i386 build).
|
| 1.73.6.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #162):
sbin/fsck_ffs/inode.c: revision 1.74 sbin/fsck_ffs/utilities.c: revision 1.68 sbin/fsck_ffs/fsck.h: revision 1.57 sbin/fsck_ffs/pass4.c: revision 1.30
catch up with sign changes in the fs.h
|
| 1.78.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.92 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.91 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.90 | 17-Nov-2022 |
chs | branches: 1.90.2; Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.89 | 06-Apr-2020 |
martin | Sync "common" declarations with ifdefs in header.
|
| 1.88 | 06-Apr-2020 |
mrg | dion't define endian as well as try to declare it as a variable.
|
| 1.87 | 05-Apr-2020 |
joerg | Fix depenency on common symbols in sbin.
|
| 1.86 | 15-Aug-2019 |
kamil | fsck: Stop defining the same variable concurrently in bss and data
returntosingle was defined in multiple places:
- fsck_lfs/main.c - fsck_ffs/main.c - fsck_ext2fs/main.c - fsck/fsutil.c
Keep the fsutil.c definition as the only one.
Detected during the build of telned with Address Sanitizer (MKSANITIZER).
|
| 1.85 | 05-May-2019 |
christos | branches: 1.85.2; Add a -z flag to zero out the up to 4 bytes of padding in directory entry names (including the terminating NUL), as well as directory entries with extra free space (d->d_reclen > UFS_DIRSIZ(d)).
Inspired from FreeBSD: https://svnweb.freebsd.org/base?view=revision&revision=347066
While the kernel has been fixed to deal with the padding bytes (new kernels will correctly zero out all the padding after the name), it appears that there is still an issue with directory entries with extra free space, since a newly created and populated filesystem gets modified with "fsck_ffs -z".
|
| 1.84 | 08-Feb-2017 |
rin | branches: 1.84.12; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.83 | 16-Jun-2015 |
christos | branches: 1.83.2; 1.83.4; a few more \n's in errors
|
| 1.82 | 16-Jun-2015 |
christos | fix error messages containing \n
|
| 1.81 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.80 | 29-Aug-2011 |
joerg | branches: 1.80.2; 1.80.8; Use __dead
|
| 1.79 | 09-Jun-2011 |
christos | share more code.
|
| 1.78 | 06-Mar-2011 |
bouyer | branches: 1.78.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.77 | 06-Feb-2011 |
njoly | Do Skip device checks, which ends up parsing fstab, when working on a filesystem image with -F option set.
|
| 1.76 | 11-Apr-2010 |
hannken | branches: 1.76.2; Add -x option which allows to run `fsck_msdos -n' on a snapshot of a live file system.
While here modify snap_open() to accept a character device as its first arg and remove now unneeded get_snap_device().
Reviewed by: Manuel Bouyer <bouyer@netbsd.org>
|
| 1.75 | 07-Jan-2010 |
christos | make this compile again.
|
| 1.74 | 06-Jan-2010 |
christos | PR/42568: Pedro F. Giffuni: Better signal handling from OpenBSD, but simplified.
|
| 1.73 | 12-Oct-2008 |
wiz | Don't use unicode in usage. Noted by Anon Ymous.
|
| 1.72 | 09-Oct-2008 |
wiz | Sync usage with man page.
|
| 1.71 | 09-Oct-2008 |
christos | Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.70 | 30-Aug-2008 |
dogcow | Make it compile. (HI BOUYER!)
|
| 1.69 | 30-Aug-2008 |
bouyer | Add fss(4) snapshot support to fsck_ffs(8) (via -x or -X options, like dump(8)). This allows fsck_ffs -n to work on a snapshot of a R/W mounted filesystem, and avoid errors related to filesystem activity.
|
| 1.68 | 20-Jul-2008 |
lukem | Remove the \n and tabs from the __COPYRIGHT() strings. (Tweak some to use a consistent format.)
|
| 1.67 | 23-Feb-2008 |
christos | branches: 1.67.4; 1.67.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.66 | 16-Jul-2007 |
pooka | branches: 1.66.4; 1.66.10; 1.66.12; Make all mount(2) return value error checks against -1. Some file systems just checked != 0, breaking MNT_GETARGS. Others worked with < 0, but make them check against -1 too for consistency. And sprinkle some stylish line wrapping where appropriate.
|
| 1.65 | 14-Jul-2007 |
dsl | Add additional 'sizeof args' parameter to mount(2).
|
| 1.64 | 08-Feb-2007 |
drochner | include <signal.h> where signal(3) is used
|
| 1.63 | 17-Jan-2007 |
hubertf | Remove more duplicate #includes, from Slava Semushin <slava.semushin@gmail.com>
|
| 1.62 | 14-Nov-2006 |
apb | branches: 1.62.2; Fix error in previous. Pass 1 needs to use progress_setrange(), not progress_sethighlim().
|
| 1.61 | 14-Nov-2006 |
apb | Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.60 | 23-Sep-2005 |
jmmv | Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
| 1.59 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.58 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.57 | 20-Jan-2005 |
xtraeme | branches: 1.57.2; whitespace (pointed out by wiz@)
|
| 1.56 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.55 | 19-Jan-2005 |
wiz | Add -P to usage.
|
| 1.54 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.53 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.52 | 11-Oct-2004 |
dbj | always print warning and return non-zero exit when there are unresolved inconsistencies.
|
| 1.51 | 25-Jun-2004 |
wiz | Add -a to usage. Closes PR 25916 by Kouichirou Hiratsuka.
|
| 1.50 | 21-Apr-2004 |
christos | Replace the statfs() family of system calls with statvfs(). Retain binary compatibility.
|
| 1.49 | 17-Jan-2004 |
dbj | print warning if the user specifies a conversion level greater than implemented
|
| 1.48 | 05-Jan-2004 |
jmmv | Homogenize usage messages: make the 'usage' word all lowercase, as this seems to be the most common practice in our tree.
|
| 1.47 | 20-Oct-2003 |
dsl | Add a -q (quiet) option to print nothing for clean filesystems. Support in fsck_ffs and stub in fsck_xxx. Push a few more messages through pwarn() instead of printf() to ensure disk name is shown.
|
| 1.46 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.45 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.44 | 28-Jan-2003 |
mrg | make this build on alpha after daddr_t->64bit
|
| 1.43 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.42 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.41 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.40 | 15-Aug-2001 |
lukem | - implement -F; treat provided filesystems as images in regular files - replace "filesystem" with "file system" as appropriate - grammar fixes
|
| 1.39 | 23-Feb-2001 |
christos | fix compile errors.
|
| 1.38 | 19-Feb-2001 |
cgd | convert to use getprogname()
|
| 1.37 | 04-Feb-2001 |
christos | remove redundant declarations
|
| 1.36 | 26-Jan-2001 |
thorpej | In pass 5, check alternate superblocks for consistency with the current in-core master superblock, and fix them up if they're incorrect. Move the code that writes the alternate superblocks if (cvtlevel || doswap) into pass 5 for efficiency.
Reviewd by Charles Hannum, and used by me to fix up a curdled file system.
|
| 1.35 | 13-Dec-2000 |
mycroft | Fix an annoyingly incorrect message.
|
| 1.34 | 15-Nov-1999 |
fvdl | branches: 1.34.4; Changes for softdep code.
|
| 1.33 | 26-Jul-1998 |
mycroft | branches: 1.33.4; 1.33.8; const poisoning.
|
| 1.32 | 01-Apr-1998 |
kleink | Need <time.h> for time() prototype.
|
| 1.31 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.30 | 01-Mar-1998 |
fvdl | Merge with Lite2 + local changes
|
| 1.29 | 02-Nov-1997 |
mjacob | Hmmm..fsck_ffs has to really be able to alwasy work, and if you've got a *huge* (like 600GB) filesystem, you need to not be limited by resource limits.
|
| 1.28 | 01-Oct-1997 |
enami | branches: 1.28.2; Don't declare optind and optarg.
|
| 1.27 | 24-Sep-1997 |
lukem | for now, #ifdef out a couple of chunks that were added in the lite2 merge
|
| 1.26 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.25 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.24 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.23 | 22-Oct-1996 |
christos | - sort and remove unused options. - If no filesystem is specified or an incorrect option, print usage information
|
| 1.22 | 11-Oct-1996 |
thorpej | Bug fix from Kirk McKusick <mckusick@McKusick.COM>:
Fix a bug in fsck_ffs where if a directory somehow develops a hole (that is a block pointer that has a value of zero), fsck would give the filesystem a clean bill of health, but the kernel would panic when accessing the directory with the hole. Fsck now checks for holes in directories. If found in preen mode, fsck fails. In manual mode, it can be directed to shorten the directory to the beginning of the hole. A more complete solution would be to allocate a block to fill the hole. However, this is a lot more work for a `cannot happen' error, so the extra effort seems unwarranted.
|
| 1.21 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.20 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.19 | 28-Nov-1995 |
jtc | branches: 1.19.4; merge in changes from 1.1 release branch
|
| 1.18 | 12-Jul-1995 |
cgd | branches: 1.18.2; recognize 'ffs' and 'ufs' as meaning the same thing.
|
| 1.17 | 12-Jul-1995 |
cgd | implement a 'force check' flag, '-f'. I used the SunOS name, but the Digital semantics. now: (1) dirty file systems will always be checked; nothing new there. (2) if not '-f' clean file systems will _NEVER_ be checked, i.e. they won't be checked even if -p isn't specified. This allows one to 'fsck -p ; fsck' to preen, then clean up anything that 'fsck -p' barfs on, without waiting for the clean file systems to be checked again. (3) if '-f' clean file systems will ALWAYS be checked. This allows people to put 'fsck -fp' into /etc/rc on systems where they're leery of the FS clean flag state, need the extra reliability, and can afford time 'wasted' in checks. The assumption made here is that if a file system is marked clean, it _IS CLEAN_, really, and shouldn't be checked unless fsck is explicitly told to (with -f). This should be a valid assumption, but may not be in the presence of file system bugs. Documentation updated to note '-f'.
|
| 1.16 | 12-Apr-1995 |
mycroft | Set the clean flag if necessary. If preening, don't check `clean' file systems.
|
| 1.15 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.14 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.13 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.12 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.11 | 06-Apr-1994 |
cgd | kill the evil U word! from Mike Long <mike.long@analog.com>
|
| 1.10 | 15-Oct-1993 |
cgd | try again to keep it from rebooting endlessly
|
| 1.9 | 06-Oct-1993 |
cgd | set the 'clean' flag sometimes, but ignore it when deciding to clean or not. this allows you to use this fsck and... reboot your system; otherwise it would inf-loop rebooting and marking the FS clean, which would then mark the fs modified, cause a reboot, etc.
|
| 1.8 | 03-Oct-1993 |
mycroft | #if 0 the fs_clean check for now.
|
| 1.7 | 01-Oct-1993 |
mycroft | Don't set clean flag if -n.
|
| 1.6 | 01-Oct-1993 |
mycroft | Initial count for fs_state is `FS_CLEANFREQ'.
|
| 1.5 | 01-Oct-1993 |
mycroft | Skip check if filesystem is marked clean and isn't too dusty, only with -p. Set clean flag after checking a filesystem.
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.18.2.1 | 01-Nov-1995 |
jtc | complete ufs -> ffs change (From John Kohl; PR #1403)
|
| 1.19.4.1 | 02-Mar-1997 |
mycroft | Pull up changes from Kirk McKusick to check for holes in directories.
|
| 1.28.2.1 | 02-Nov-1997 |
mellon | Pull rev 1.29 up from trunk (mjacob)
|
| 1.33.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.33.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.34.4.2 | 25-Nov-2001 |
he | Pull up revision 1.39 (requested by lukem): Use int32_t for on-disk time_t representation. Convert %q_ to %ll_ in print formats.
|
| 1.34.4.1 | 24-Nov-2001 |
he | Pull up revisions 1.35-1.37 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.57.2.2 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/main.c: revision 1.62 Fix error in previous. Pass 1 needs to use progress_setrange(), not progress_sethighlim().
|
| 1.57.2.1 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.62.2.1 | 24-Mar-2009 |
bouyer | Pull up following revision(s) (requested by manu in ticket #1288): sbin/fsck_lfs/inode.c: revision 1.40 via patch sbin/fsck_ffs/fsck_ffs.8: revision 1.44 via patch sbin/fsck_ext2fs/fsck.h: revision 1.14 via patch sbin/fsck_ext2fs/main.c: revision 1.30 via patch sbin/fsck_ffs/inode.c: revision 1.61 via patch sbin/fsck_ffs/main.c: revision 1.71 via patch sbin/fsck_ext2fs/inode.c: revision 1.23 via patch sbin/fsck_lfs/fsck.h: revision 1.18 via patch sbin/fsck_lfs/fsck_lfs.8: revision 1.21 via patch sbin/fsck_lfs/main.c: revision 1.38 via patch sbin/fsck_ext2fs/fsck_ext2fs.8: revision 1.15 via patch sbin/fsck_ffs/fsck.h: revision 1.47 via patch Disable userid to username lookups by default. Add a -U flag to perform them. In single user mode lookups that involve the network might not work and they slow down fsck.
|
| 1.66.12.3 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.66.12.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.66.12.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.66.10.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.66.4.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.67.6.1 | 28-Jul-2008 |
simonb | Sync with head.
|
| 1.67.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.76.2.2 | 08-Feb-2011 |
bouyer | Sync with HEAD
|
| 1.76.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.78.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.80.8.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.80.2.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.83.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.83.2.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.84.12.3 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
| 1.84.12.2 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
| 1.84.12.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.85.2.1 | 16-Aug-2019 |
martin | Pull up following revision(s) (requested by kamil in ticket #73):
sbin/fsck_lfs/main.c: revision 1.54 sbin/fsck_ext2fs/main.c: revision 1.40 sbin/fsck_ffs/main.c: revision 1.86
fsck: Stop defining the same variable concurrently in bss and data returntosingle was defined in multiple places: - fsck_lfs/main.c - fsck_ffs/main.c - fsck_ext2fs/main.c - fsck/fsutil.c
Keep the fsutil.c definition as the only one.
Detected during the build of telned with Address Sanitizer (MKSANITIZER).
|
| 1.90.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.64 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.63 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.62 | 18-Nov-2022 |
martin | branches: 1.62.2; Fix clearing of permissions when finding unexpected extended attributs for swapped endian file systems. Ok: chs
|
| 1.61 | 17-Nov-2022 |
martin | Make the "non-zero exattr fields" message show the inode number.
|
| 1.60 | 17-Nov-2022 |
chs | Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.59 | 19-Apr-2020 |
christos | Enable the code to clean the extattr blocks
|
| 1.58 | 13-Feb-2018 |
hannken | branches: 1.58.4; Treat an inode with "mode == 0" and "blocks != 0" as partially allocated and clear it as ffs_newvnode() tests for "blocks == 0".
|
| 1.57 | 08-Feb-2017 |
rin | branches: 1.57.4; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.56 | 19-Oct-2013 |
christos | branches: 1.56.8; 1.56.12; fix unused variable warnings.
|
| 1.55 | 23-Jun-2013 |
dholland | Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of the following symbols so as to disambiguate fully. (Christos already did the lfs ones.)
lblkno lblktosize lfragtosize numfrags blkroundup fragroundup
|
| 1.54 | 23-Jun-2013 |
dholland | fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB() dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()
(Christos already did the lfs ones a few days back)
|
| 1.53 | 19-Jun-2013 |
dholland | blkoff() -> ffs_blkoff() stragglers
|
| 1.52 | 19-Jun-2013 |
dholland | Rename ambiguous macros: MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR INOPB -> FFS_INOPB, LFS_INOPB INOPF -> FFS_INOPF, LFS_INOPF blksize -> ffs_blksize, ext2_blksize, or lfs_blksize sblksize -> ffs_blksize
These are not the only ambiguously defined filesystem macros, of course, there's a pile more. I may not have found all the ambiguous definitions of blksize(), too, as there are a lot of other things called 'blksize' in the system.
|
| 1.51 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.50 | 06-Jan-2013 |
riastradh | Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.49 | 14-Aug-2011 |
christos | branches: 1.49.2; 1.49.4; 1.49.8; 1.49.10; WARNS=4
|
| 1.48 | 09-Jun-2011 |
christos | share more code.
|
| 1.47 | 06-Mar-2011 |
bouyer | branches: 1.47.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.46 | 12-Oct-2008 |
christos | branches: 1.46.2; 1.46.6; 1.46.10; 1.46.14; 1.46.16; reallocate the correct amount. From Anon Ymous
|
| 1.45 | 09-Oct-2008 |
christos | Avoid allocating 2 x inospace and use realloc instead. This also saves a large memcpy.
|
| 1.44 | 23-Feb-2008 |
christos | Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.43 | 14-Nov-2006 |
apb | branches: 1.43.8; 1.43.16; 1.43.18; Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.42 | 16-Oct-2006 |
christos | comment out impossible code.
|
| 1.41 | 21-Apr-2006 |
skrll | Don't use cast expressions as lvalues as newer versions of gcc warn.
|
| 1.40 | 05-Dec-2005 |
christos | ndb is daddr_t which is 64 bits, by truncating it to j which is an int, it can get negative causing segmentation faults. Check against this.
|
| 1.39 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.38 | 08-Jun-2005 |
dbj | add code to handle inodes with extended attribute blocks this is currently turned off with "#ifdef notyet" since the kernel will not correctly clean up extended attribute blocks on truncation
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.37 | 30-Apr-2005 |
christos | Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.36 | 20-Jan-2005 |
xtraeme | branches: 1.36.2; whitespace (pointed out by wiz@)
|
| 1.35 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.34 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.33 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.32 | 25-May-2004 |
hannken | Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
| 1.31 | 03-Jan-2004 |
dbj | branches: 1.31.4; fix bugs with unsigned comparison ofs fs_maxsymlinklen
|
| 1.30 | 03-Jan-2004 |
dbj | increase size of buffer used for updating symlinks with -c 1 otherwise, the block read will blow the stack
|
| 1.29 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.28 | 02-Apr-2003 |
he | On LP64 hosts, iswap64() result is "long int", so cast result to (long long) before printing with %lld.
|
| 1.27 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.26 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.25 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.24 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.23 | 05-Jan-2001 |
lukem | use %ll_ instead of the less standard %q_
|
| 1.22 | 15-Nov-1999 |
fvdl | Changes for softdep code.
|
| 1.21 | 18-Mar-1998 |
bouyer | branches: 1.21.4; 1.21.8; Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.20 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.19 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.18 | 16-Sep-1997 |
mrg | make these compile on the alpha after WARNS=1.
|
| 1.17 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.16 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.15 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.14 | 18-Jan-1996 |
mycroft | Use fs_csaddr to find the cg summary area. From der Mouse, PR 1366.
|
| 1.13 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.12 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.11 | 23-Sep-1994 |
mycroft | Remove some more uses of obsolete functions.
|
| 1.10 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.9 | 29-Jun-1994 |
ws | Reads on raw disks are only guarranteed in multiples of the block size
|
| 1.8 | 14-Jun-1994 |
mycroft | Fix compatibility with old fastlinks.
|
| 1.7 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.6 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.5 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.4 | 13-Jun-1993 |
mycroft | Add support for fast symlinks.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.21.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.21.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.31.4.1 | 01-May-2005 |
tron | Pull up revision 1.37 (requested by christos in ticket #1493): Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.36.2.3 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.36.2.2 | 07-Dec-2005 |
riz | Pull up following revision(s) (requested by christos in ticket #1037): sbin/fsck_ffs/pass1.c: revision 1.40 ndb is daddr_t which is 64 bits, by truncating it to j which is an int, it can get negative causing segmentation faults. Check against this.
|
| 1.36.2.1 | 01-May-2005 |
tron | Pull up revision 1.37 (requested by christos in ticket #228): Dammit, get rid of the debugging abort() calls. It is no fun to have a broken fsck program on a busted filesystem.
|
| 1.43.18.2 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.43.18.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.43.16.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.43.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.46.16.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #1837): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.46.14.3 | 12-Feb-2011 |
bouyer | Skip snapshot inodes for both block and inode quotas.
|
| 1.46.14.2 | 12-Feb-2011 |
bouyer | Snapshot inode doesn't count for block quotas.
|
| 1.46.14.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.46.10.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #1837): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.46.6.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #1837): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.46.2.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #1837): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.47.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.49.10.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #779): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.49.8.3 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.49.8.2 | 23-Jun-2013 |
tls | resync from head
|
| 1.49.8.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.49.4.1 | 13-Jan-2013 |
bouyer | Pull up following revision(s) (requested by riastradh in ticket #779): sbin/fsck_ffs/pass1.c: revision 1.50 Show pass1 SIGINFO output on stderr like other passes, not on stdout.
|
| 1.49.2.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.49.2.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.56.12.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.56.8.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.57.4.1 | 15-Feb-2018 |
martin | Pull up following revision(s) (requested by hannken in ticket #550): sbin/fsck_ffs/pass1.c: revision 1.58 Treat an inode with "mode == 0" and "blocks != 0" as partially allocated and clear it as ffs_newvnode() tests for "blocks == 0".
|
| 1.58.4.1 | 21-Apr-2020 |
martin | Sync with HEAD
|
| 1.62.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.24 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.23 | 22-Jan-2013 |
dholland | branches: 1.23.40; Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.22 | 06-Mar-2011 |
bouyer | branches: 1.22.4; 1.22.10; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.21 | 20-Jan-2005 |
xtraeme | branches: 1.21.48; whitespace (pointed out by wiz@)
|
| 1.20 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.19 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.18 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.17 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.16 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.15 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.14 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.13 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.12 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.11 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.10 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.9 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.8 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.7 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.21.48.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.22.10.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.22.4.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.23.40.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.53 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.52 | 27-Mar-2023 |
chs | Apply this commit from FreeBSD:
commit 6bae6625e0e06816c80ac4971dfccf0643abe3f0 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Aug 17 14:19:59 2022 -0700
Improve handling of missing '.' and '..' in UFS directories.
The UFS filesystem expects to find '.' and '..' as the first two entries in a directory. The kernel's UFS name cache can become quite confused when these two entries are not present as the first two entries.
Prior to this change, when the fsck_ffs(8) utility detected that '.' and/or '..' were missing, it would report them, but only offered to replace them if the space at the beginning of the directory was available. Otherwise it was left to the system administrator to move the offending file(s) out of the way and then rerun fsck_ffs(8) to create the '.' and '..' entries.
With this change, fsck_ffs(8) will always be able to create the '.' and/or '..' entries. It moves any files in the way elsewhere in the directory block. If there is no room in the directory block to which to move them, they are placed in the lost+found directory.
Reported by: Peter Holm Sponsored by: The FreeBSD Foundation
|
| 1.51 | 08-Feb-2017 |
rin | branches: 1.51.22; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.50 | 09-Jun-2013 |
dholland | branches: 1.50.10; 1.50.14; Stick UFS_ in front of these symbols: DIRBLKSIZ DIRECTSIZ DIRSIZ OLDDIRFMT NEWDIRFMT
Part of PR 47909.
|
| 1.49 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.48 | 14-Aug-2011 |
christos | branches: 1.48.2; 1.48.8; WARNS=4
|
| 1.47 | 09-Jun-2011 |
christos | share more code.
|
| 1.46 | 06-Mar-2011 |
bouyer | branches: 1.46.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.45 | 23-Feb-2008 |
christos | branches: 1.45.20; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.44 | 14-Nov-2006 |
apb | branches: 1.44.8; 1.44.16; 1.44.18; Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.43 | 21-Apr-2006 |
skrll | Don't use cast expressions as lvalues as newer versions of gcc warn.
|
| 1.42 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.41 | 20-Jan-2005 |
xtraeme | branches: 1.41.2; whitespace (pointed out by wiz@)
|
| 1.40 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.39 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.38 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.37 | 20-Jul-2004 |
mycroft | Reduce memory usage slightly.
|
| 1.36 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.35 | 13-Jul-2003 |
itojun | use bounded string op
|
| 1.34 | 09-Apr-2003 |
fvdl | Correctly deal with directories that need indirect blocks by adding some code I missed in the UFS2 commit. Should fix false positives seen by fsck_ffs on clean filesystems.
Thanks to Takahiro Kambe for debugging help.
|
| 1.33 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.32 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.31 | 06-May-2002 |
agc | Make this compile on some of the more esoteric architectures.
|
| 1.30 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.29 | 09-Jan-2001 |
mycroft | The reconnect algorithm was historically O(n^4). Some years ago I made it O(n^2). Someone helpfully made it O(n^4) again. Today I'm making it O(n). If that's not good enough, I don't know what else to do. B-)
Technical details: * The graph traversal in propagate() is modified to be able to start from any point in the tree. To handle certain exceptional cases, it is also modified to work in two passes, marking the tree with a special tag and then changing it to DFOUND. * The reconnect case now modifies the child/sibling pointers and calls propagate() to propagate the connection state starting with the reconnected directory.
Pray that you never encounter a file system trashed enough for this to matter.
|
| 1.28 | 05-Jan-2001 |
lukem | use %ll_ instead of the less standard %q_
|
| 1.27 | 17-Nov-1999 |
mrg | branches: 1.27.4; fix lp64 lossage.
|
| 1.26 | 15-Nov-1999 |
fvdl | Changes for softdep code.
|
| 1.25 | 23-Oct-1998 |
thorpej | branches: 1.25.4; 1.25.8; Use DINODE_SIZE rather than sizeof(struct dinode) and/or pointer arithmetic.
|
| 1.24 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.23 | 21-Sep-1997 |
lukem | reintroduce clarity changes made in rev1.14 that were lost in the lite2 merge
|
| 1.22 | 21-Sep-1997 |
lukem | remove some code that was obsoleted by mycroft's changes to propagate() in dir.c rev 1.14.
this was accidentally re-introduced in the lite-2 merge, and could cause filesystem corruption.
|
| 1.21 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.20 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.19 | 16-Sep-1997 |
mrg | make these compile on the alpha after WARNS=1.
|
| 1.18 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.17 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.16 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.15 | 11-Jun-1996 |
mycroft | Use a different tree-walking algorithm in propagate().
|
| 1.14 | 21-May-1996 |
mycroft | branches: 1.14.2; Remove previous (incorrect) change, and tidy up a bit to make it clearer what's going on.
|
| 1.13 | 21-May-1996 |
mrg | initalise dino to zero. pr#2098
|
| 1.12 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.11 | 28-Dec-1994 |
mycroft | Change some spacing to match Kirk's view of the world.
|
| 1.10 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.9 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.8 | 28-Oct-1994 |
mycroft | Get the byte order right when creating `.' and `..' entries.
|
| 1.7 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.6 | 08-Jun-1994 |
mycroft | branches: 1.6.2; Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.6.2.1 | 07-Nov-1994 |
cgd | for patch #2
|
| 1.14.2.1 | 10-Dec-1996 |
mycroft | From trunk: * Redo the tree-walking algorithm to make it O(n) rather than O(n^2). * Fix some minor type size problems.
|
| 1.25.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.25.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.27.4.1 | 24-Nov-2001 |
he | Pull up revision 1.29 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.41.2.1 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.44.18.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.44.16.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.44.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.45.20.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.46.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.48.8.2 | 23-Jun-2013 |
tls | resync from head
|
| 1.48.8.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.48.2.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.48.2.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.50.14.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.50.10.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.51.22.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #164):
sbin/fsck_ffs/pass2.c: revision 1.52
Apply this commit from FreeBSD: commit 6bae6625e0e06816c80ac4971dfccf0643abe3f0 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Aug 17 14:19:59 2022 -0700 Improve handling of missing '.' and '..' in UFS directories. The UFS filesystem expects to find '.' and '..' as the first two entries in a directory. The kernel's UFS name cache can become quite confused when these two entries are not present as the first two entries. Prior to this change, when the fsck_ffs(8) utility detected that '.' and/or '..' were missing, it would report them, but only offered to replace them if the space at the beginning of the directory was available. Otherwise it was left to the system administrator to move the offending file(s) out of the way and then rerun fsck_ffs(8) to create the '.' and '..' entries. With this change, fsck_ffs(8) will always be able to create the '.' and/or '..' entries. It moves any files in the way elsewhere in the directory block. If there is no room in the directory block to which to move them, they are placed in the lost+found directory. Reported by: Peter Holm Sponsored by: The FreeBSD Foundation
|
| 1.21 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.20 | 06-Mar-2011 |
bouyer | branches: 1.20.4; 1.20.10; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.19 | 14-Nov-2006 |
apb | branches: 1.19.40; Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.18 | 13-Jan-2005 |
christos | branches: 1.18.2; Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.17 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.16 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.15 | 02-Apr-2003 |
he | The new UFS2 code uses memset(), so include <string.h> for prototype.
|
| 1.14 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.13 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.12 | 10-Jan-2001 |
mycroft | Abstract the code to attach a directory to its parent's child list into a separate function, and call it from multiple places in linkup() to handle reconnects and creation of /lost+found.
|
| 1.11 | 09-Jan-2001 |
mycroft | The reconnect algorithm was historically O(n^4). Some years ago I made it O(n^2). Someone helpfully made it O(n^4) again. Today I'm making it O(n). If that's not good enough, I don't know what else to do. B-)
Technical details: * The graph traversal in propagate() is modified to be able to start from any point in the tree. To handle certain exceptional cases, it is also modified to work in two passes, marking the tree with a special tag and then changing it to DFOUND. * The reconnect case now modifies the child/sibling pointers and calls propagate() to propagate the connection state starting with the reconnected directory.
Pray that you never encounter a file system trashed enough for this to matter.
|
| 1.10 | 16-Sep-1997 |
lukem | branches: 1.10.14; resolve conflicts from lite-2 merge.
|
| 1.9 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.8 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.7 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.10.14.1 | 24-Nov-2001 |
he | Pull up revisions 1.11-1.12 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.18.2.1 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.19.40.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.20.10.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.20.4.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.31 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.30 | 14-Jan-2023 |
christos | catch up with sign changes in the fs.h
|
| 1.29 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.28 | 23-Jun-2013 |
dholland | branches: 1.28.38; Stick ffs_ in front of the following macros: fragstoblks() blkstofrags() fragnum() blknum()
to finish the job of distinguishing them from the lfs versions, which Christos renamed the other day.
I believe this is the last of the overtly ambiguous exported symbols from ffs... or at least, the last of the ones that conflicted with lfs. ffs still pollutes the C namespace very broadly (as does ufs) and this needs quite a bit more cleanup.
XXX: boo on macros with lowercase names. But I'm not tackling that just yet.
|
| 1.27 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.26 | 06-Mar-2011 |
bouyer | branches: 1.26.4; 1.26.10; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.25 | 31-Jul-2008 |
simonb | branches: 1.25.14; Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.24 | 23-Feb-2008 |
christos | branches: 1.24.4; 1.24.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.23 | 14-Nov-2006 |
apb | branches: 1.23.8; 1.23.16; 1.23.18; Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.22 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.21 | 19-Jan-2005 |
xtraeme | branches: 1.21.2; Kill __P(), ANSIfy and WARNS=2
|
| 1.20 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.19 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.18 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.17 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.16 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.15 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.14 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.13 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.12 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.11 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.10 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.9 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.8 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.7 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.21.2.1 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.23.18.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.23.18.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.23.16.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.23.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.24.6.1 | 28-Jul-2008 |
simonb | Add support for creating a WAPBL log in the filesystem. Will create an in-filesystem log on first "mount -o log" if one doesn't exist, and will then continue to use same log in the future. See (soon to be added) wapbl(4) for more info.
Adds a new B_CONTIG low-level allocation flag that uses hints in "struct ffs_inode_ext" to lay out an ffs file's data contiguously.
Thanks to Greg Oster for helping with the design of this and to Antti Kantee for code review and suggestions.
|
| 1.24.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.25.14.3 | 12-Feb-2011 |
bouyer | Skip snapshot inodes for both block and inode quotas.
|
| 1.25.14.2 | 12-Feb-2011 |
bouyer | Snapshot inode doesn't count for block quotas.
|
| 1.25.14.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.26.10.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.26.10.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.26.4.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.26.4.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.28.38.2 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #162):
sbin/fsck_ffs/inode.c: revision 1.74 sbin/fsck_ffs/utilities.c: revision 1.68 sbin/fsck_ffs/fsck.h: revision 1.57 sbin/fsck_ffs/pass4.c: revision 1.30
catch up with sign changes in the fs.h
|
| 1.28.38.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.58 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.57 | 08-Jan-2023 |
chs | ufs: more signed/unsigned fixes
Fix the previous signed/unsigned fixes to build on 32-bit, including applying this commit from FreeBSD:
commit 2d34afcd04207cf3fa3d5b7f467a890eae75da41 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Sun Oct 25 21:04:07 2020 +0000
Use proper type (ino_t) for inode numbers to avoid improper sign extention in the Pass 5 checks. The manifestation was fsck_ffs exiting with this error:
** Phase 5 - Check Cyl groups fsck_ffs: inoinfo: inumber 18446744071562087424 out of range
The error only manifests itself for filesystems bigger than about 100Tb.
Reported by: Nikita Grechikhin <ngrechikhin at yandex.ru> MFC after: 2 weeks Sponsored by: Netflix
|
| 1.56 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.55 | 17-Nov-2022 |
chs | branches: 1.55.2; Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.54 | 23-Jun-2013 |
dholland | Stick ffs_ in front of the following macros: fragstoblks() blkstofrags() fragnum() blknum()
to finish the job of distinguishing them from the lfs versions, which Christos renamed the other day.
I believe this is the last of the overtly ambiguous exported symbols from ffs... or at least, the last of the ones that conflicted with lfs. ffs still pollutes the C namespace very broadly (as does ufs) and this needs quite a bit more cleanup.
XXX: boo on macros with lowercase names. But I'm not tackling that just yet.
|
| 1.53 | 23-Jun-2013 |
dholland | Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of the following symbols so as to disambiguate fully. (Christos already did the lfs ones.)
lblkno lblktosize lfragtosize numfrags blkroundup fragroundup
|
| 1.52 | 23-Jun-2013 |
dholland | fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB() dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()
(Christos already did the lfs ones a few days back)
|
| 1.51 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.50 | 26-Aug-2012 |
dholland | branches: 1.50.2; stdlib.h, not malloc.h
|
| 1.49 | 14-Aug-2011 |
christos | branches: 1.49.2; WARNS=4
|
| 1.48 | 23-Feb-2008 |
christos | Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.47 | 14-Nov-2006 |
apb | branches: 1.47.8; 1.47.16; 1.47.18; Improve the progress bar displayed by fsck_ffs -p -P.
The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5.
Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.46 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.45 | 20-Jan-2005 |
xtraeme | branches: 1.45.2; whitespace (pointed out by wiz@)
|
| 1.44 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.43 | 13-Jan-2005 |
christos | Use -DPROGRESS to enable the progress bar, don't depend on SMALL.
|
| 1.42 | 13-Jan-2005 |
christos | Add a progress meter to fsck_ffs based on the work by thorpej presented to the mailing lists last January. This is optional.
|
| 1.41 | 09-Oct-2004 |
ragge | Cast to (long long int) to make last change compile on amd64.
|
| 1.40 | 08-Oct-2004 |
dbj | if debug, print found/expected block & inode counts when incorrect
|
| 1.39 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.38 | 19-Sep-2003 |
itojun | realloc pedant
|
| 1.37 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.36 | 04-Apr-2003 |
fvdl | When fixing the cstotal structure, use the right size to copy it back. Also, remove some accidentally committed debug code from the previous commit.
|
| 1.35 | 04-Apr-2003 |
fvdl | Initialize cg_irotor correctly in newcg, to avoid false positives for bad cylinder groups.
|
| 1.34 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.33 | 14-Feb-2003 |
grant | 'NetBSD.org' and some mdoc fixes.
|
| 1.32 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.31 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.30 | 30-Jun-2002 |
dbj | commit fix from pr bin/15449 this fixes FS_42POSTBLFMT compatibility
|
| 1.29 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.28 | 10-Apr-2002 |
mycroft | Some manual strength reduction.
|
| 1.27 | 17-Aug-2001 |
lukem | remove third argument (`int ns') from ffs_sb_swap(), and let ffs_sb_swap() determine the endianness of the `struct fs *o' superblock from o->fs_magic and set needswap as necessary, rather than trusting the caller to get it right. invariably, almost every caller of ffs_sb_swap() was calling it with ns set to the wrong value for ns anyway! ansi KNF ffs_bswap.c declarations whilst here.
this fixes all sorts of problems when trying to use other-endian file systems, notably the kernel trying to access memory *way* off, possibly corrupting or panicing, and userland programs SEGVing and/or corrupting things (e.g, "fsck_ffs -B" to swap a file system endianness).
whilst the previous rev of ffs_bswap.c (1.10, 2000/12/23) made this problem worse, i suspect that the problem was always there and previous versions just happened not to trash things at the wrong time.
FFS_EI should now be a lot more stable.
|
| 1.26 | 26-Jan-2001 |
thorpej | In pass 5, check alternate superblocks for consistency with the current in-core master superblock, and fix them up if they're incorrect. Move the code that writes the alternate superblocks if (cvtlevel || doswap) into pass 5 for efficiency.
Reviewd by Charles Hannum, and used by me to fix up a curdled file system.
|
| 1.25 | 09-Jan-2001 |
mycroft | Make sure the rotor values are non-negative.
|
| 1.24 | 14-Jul-2000 |
mycroft | Add a missing newline in one message. (The fact that I got this message using softdep should probably disturb someone...)
|
| 1.23 | 28-Nov-1999 |
bouyer | branches: 1.23.4; Add a missing '\n'.
|
| 1.22 | 15-Nov-1999 |
fvdl | Fix %d <-> long mismatch.
|
| 1.21 | 15-Nov-1999 |
fvdl | Changes for softdep code.
|
| 1.20 | 25-Aug-1998 |
ross | branches: 1.20.4; 1.20.8; from Erik Bertelsen <erik@mediator.uni-c.dk> { put } { in } { lots } { of } { these } { to } { shut } { up } { egcs }
|
| 1.19 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.18 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.17 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.16 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.15 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.14 | 21-Mar-1995 |
cgd | type sizes
|
| 1.13 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.12 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.11 | 18-Dec-1994 |
cgd | light clean, and make it compile against new header files.
|
| 1.10 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.9 | 28-Oct-1994 |
mycroft | Use the S_IS*() macros, and make this compile again after Chris's changes to ufs.
|
| 1.8 | 23-Sep-1994 |
mycroft | Remove some more uses of obsolete functions.
|
| 1.7 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.20.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.20.4.3 | 26-Oct-1999 |
fvdl | Fix some merge mistakes.
|
| 1.20.4.2 | 26-Oct-1999 |
fvdl | Remove unused variable decl. From Ethan Solomita.
|
| 1.20.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.23.4.3 | 25-Nov-2001 |
he | Pull up revision 1.27 (requested by lukem): Call ffs_sb_swap() with the correct arguments. Fixes problems with using other-endian file systems.
|
| 1.23.4.2 | 24-Nov-2001 |
he | Pull up revisions 1.25-1.26 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.23.4.1 | 27-Jul-2000 |
mycroft | Approved by thorpej: Add a missing newline to message.
basesrc/sbin/fsck_ffs/pass5.c 1.23 -> 1.24
|
| 1.45.2.1 | 20-Nov-2006 |
tron | Pull up following revision(s) (requested by ghen in ticket #1590): sbin/fsck_ffs/pass4.c: revision 1.23 sbin/fsck_ffs/pass5.c: revision 1.47 sbin/fsck_ffs/pass2.c: revision 1.44 sbin/fsck_ffs/pass1.c: revision 1.43 sbin/fsck_ffs/pass3.c: revision 1.19 sbin/fsck/progress.c: revision 1.3 sbin/fsck_ffs/main.c: revision 1.61 sbin/fsck/progress.h: revision 1.2 Improve the progress bar displayed by fsck_ffs -p -P. The progress bar will now travel from 0 to 20% during pass 1, from 20% to 95% during pass 2, and from 95% to 100% during passes 3, 4, and 5. Previously, the progress bar was not displayed at all during pass 1, slowly traveled from 0 to about 50% during pass 2, and then very rapidly traveled from 50% to 100% during passes 3, 4, and 5. Note that fsck_ffs is the only user of fsck/progress.{c,h}.
|
| 1.47.18.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.47.16.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.47.8.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.49.2.3 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.49.2.2 | 23-Jan-2013 |
yamt | sync with head
|
| 1.49.2.1 | 30-Oct-2012 |
yamt | sync with head
|
| 1.50.2.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.50.2.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.55.2.2 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #161):
sbin/fsck_ffs/setup.c: revision 1.106 sbin/fsck_ffs/pass5.c: revision 1.57
ufs: more signed/unsigned fixes
Fix the previous signed/unsigned fixes to build on 32-bit, including applying this commit from FreeBSD:
commit 2d34afcd04207cf3fa3d5b7f467a890eae75da41 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Sun Oct 25 21:04:07 2020 +0000 Use proper type (ino_t) for inode numbers to avoid improper sign extention in the Pass 5 checks. The manifestation was fsck_ffs exiting with this error: ** Phase 5 - Check Cyl groups fsck_ffs: inoinfo: inumber 18446744071562087424 out of range The error only manifests itself for filesystems bigger than about 100Tb. Reported by: Nikita Grechikhin <ngrechikhin at yandex.ru> MFC after: 2 weeks Sponsored by: Netflix
|
| 1.55.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.5 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.4 | 26-Aug-2012 |
dholland | stdlib.h, not malloc.h
|
| 1.3 | 07-Jun-2011 |
bouyer | branches: 1.3.2; Fix bad cut'n'paste in copyright. Pointed out by dyoung@
|
| 1.2 | 06-Mar-2011 |
bouyer | branches: 1.2.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.1 | 20-Jan-2011 |
bouyer | branches: 1.1.2; file pass6.c was initially added on branch bouyer-quota2.
|
| 1.1.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.2.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.3.2.1 | 30-Oct-2012 |
yamt | sync with head
|
| 1.13 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.12 | 11-May-1996 |
mycroft | Try looking up the file system name in fstab. From greywolf@starwolf.com, slightly modified.
|
| 1.11 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.10 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.9 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.8 | 28-Oct-1994 |
mycroft | Use the S_IS*() macros, and make this compile again after Chris's changes to ufs.
|
| 1.7 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.6 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.5 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.8 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.7 | 03-Feb-2019 |
mrg | - add or adjust /* FALLTHROUGH */ where appropriate - add __unreachable() after functions that can return but won't in this case, and thus can't be marked __dead easily
|
| 1.6 | 26-Aug-2012 |
dholland | branches: 1.6.32; stdlib.h, not malloc.h
|
| 1.5 | 20-Mar-2012 |
matt | Convert to C89 function definitions
|
| 1.4 | 14-Aug-2011 |
christos | branches: 1.4.2; WARNS=4
|
| 1.3 | 07-Jun-2011 |
bouyer | Fix bad cut'n'paste in copyright. Pointed out by dyoung@
|
| 1.2 | 06-Mar-2011 |
bouyer | branches: 1.2.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.1 | 20-Jan-2011 |
bouyer | branches: 1.1.2; file quota2.c was initially added on branch bouyer-quota2.
|
| 1.1.2.2 | 08-Feb-2011 |
bouyer | Q2V_ -> QL_ rename
|
| 1.1.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.2.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.4.2.2 | 30-Oct-2012 |
yamt | sync with head
|
| 1.4.2.1 | 17-Apr-2012 |
yamt | sync with head
|
| 1.6.32.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.111 | 23-Jun-2025 |
christos | join lines
|
| 1.110 | 19-Jun-2025 |
mlelstv | Don't truncate bitmap size to unsigned int, avoids crashes on filesystems with more than 2^32 blocks.
Pullups
|
| 1.109 | 05-Jul-2023 |
riastradh | branches: 1.109.2; Revert "fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S)."
C17 lifted this restriction.
|
| 1.108 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.107 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S).
Required by C11 Sec. 7.22.3.1 The aligned_alloc function, para. 2, p. 348:
The value of alignment shall be a valid alignment supported by the implementation and the value of size shall be an integral multiple of alignment.
XXX pullup-10
|
| 1.106 | 08-Jan-2023 |
chs | ufs: more signed/unsigned fixes
Fix the previous signed/unsigned fixes to build on 32-bit, including applying this commit from FreeBSD:
commit 2d34afcd04207cf3fa3d5b7f467a890eae75da41 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Sun Oct 25 21:04:07 2020 +0000
Use proper type (ino_t) for inode numbers to avoid improper sign extention in the Pass 5 checks. The manifestation was fsck_ffs exiting with this error:
** Phase 5 - Check Cyl groups fsck_ffs: inoinfo: inumber 18446744071562087424 out of range
The error only manifests itself for filesystems bigger than about 100Tb.
Reported by: Nikita Grechikhin <ngrechikhin at yandex.ru> MFC after: 2 weeks Sponsored by: Netflix
|
| 1.105 | 07-Jan-2023 |
chs | ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.104 | 17-Nov-2022 |
chs | branches: 1.104.2; Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.103 | 17-Apr-2020 |
jdolecek | align buffers used for I/O to DEV_BSIZE so it's executed more optimally when run for xbd(4) raw (character) device
|
| 1.102 | 05-Oct-2018 |
hannken | branches: 1.102.2; Add a test for duplicate inodes on the persistent snapshot list.
|
| 1.101 | 08-Feb-2017 |
rin | branches: 1.101.4; 1.101.10; 1.101.12; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.100 | 23-Jun-2013 |
dholland | branches: 1.100.10; 1.100.14; Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of the following symbols so as to disambiguate fully. (Christos already did the lfs ones.)
lblkno lblktosize lfragtosize numfrags blkroundup fragroundup
|
| 1.99 | 23-Jun-2013 |
dholland | fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB() dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()
(Christos already did the lfs ones a few days back)
|
| 1.98 | 19-Jun-2013 |
dholland | Rename ambiguous macros: MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR INOPB -> FFS_INOPB, LFS_INOPB INOPF -> FFS_INOPF, LFS_INOPF blksize -> ffs_blksize, ext2_blksize, or lfs_blksize sblksize -> ffs_blksize
These are not the only ambiguously defined filesystem macros, of course, there's a pile more. I may not have found all the ambiguous definitions of blksize(), too, as there are a lot of other things called 'blksize' in the system.
|
| 1.97 | 09-Jun-2013 |
dholland | Stick UFS_ in front of these symbols: DIRBLKSIZ DIRECTSIZ DIRSIZ OLDDIRFMT NEWDIRFMT
Part of PR 47909.
|
| 1.96 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.95 | 29-Jan-2012 |
nonaka | branches: 1.95.6; use FS_UFS[12]_MAGIC_SWAPPED instead of bswap32(FS_UFS[12]_MAGIC).
|
| 1.94 | 14-Aug-2011 |
christos | branches: 1.94.2; WARNS=4
|
| 1.93 | 09-Jun-2011 |
christos | share more code.
|
| 1.92 | 20-Mar-2011 |
bouyer | branches: 1.92.2; initialise memory allocated for uquot_user_hash & uquot_group_hash. Pointed out by Nicolas Joly.
|
| 1.91 | 06-Mar-2011 |
bouyer | merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.90 | 31-Jan-2010 |
mlelstv | branches: 1.90.2; Skip handling of APPLEUFS_LABEL if it is smaller than a device block. In particular:
- newfs will not try to erase the label - fsck_ffs will not try to validate the label
This lets newfs and fsck work on 2048-byte-per-sector media.
Does Apple UFS support such media and how?
|
| 1.89 | 27-Sep-2009 |
bouyer | Restore changes from 1.86 and 1.87 after commit of 1.88.
|
| 1.88 | 13-Sep-2009 |
bouyer | Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.87 | 07-Apr-2009 |
mrg | fix a logic error in the previous, as point out by frank kardel.
|
| 1.86 | 25-Mar-2009 |
mrg | don't ignore "fsck -f" when given with "-p" on a wapbl filesystem. ie, "fsck -fp" actually forces the check in preen mode now.
|
| 1.85 | 25-Feb-2009 |
christos | don't copy the address of a pointer. Noticed by Anon Ymous
|
| 1.84 | 30-Aug-2008 |
bouyer | branches: 1.84.2; 1.84.4; 1.84.8; Add fss(4) snapshot support to fsck_ffs(8) (via -x or -X options, like dump(8)). This allows fsck_ffs -n to work on a snapshot of a R/W mounted filesystem, and avoid errors related to filesystem activity.
|
| 1.83 | 31-Jul-2008 |
simonb | Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.82 | 23-Feb-2008 |
christos | branches: 1.82.4; 1.82.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.81 | 22-Aug-2007 |
christos | branches: 1.81.2; 1.81.8; 1.81.10; Avoid zero-divides from Anon Ymous
|
| 1.80 | 26-Aug-2006 |
christos | - Deal with wedges and the new disk geometry structures, instead of using struct disklabel.
Functionality lost: 1. struct disklabel used to be updated to contain bsize, fsize, cpg. This information was used to locate the alternative superblock in the filesystem if the primary superblock was corrupted. We need to find a new place to store this information if we need this functionality. 2. On vax SMD drives that contained bad sector lists, the newfs program knew how to get the offset and skip to the correct location in order to place the label.
|
| 1.79 | 17-Mar-2006 |
rumble | Check for allocation failures in malloc, calloc, realloc, asprintf, and vasprintf and try to handle them.
|
| 1.78 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.77 | 02-Jun-2005 |
dbj | for ufs2, assume FS_44INODEFMT this is necessary for freebsd compatbility, since they do not initialize the old field.
|
| 1.76 | 02-Jun-2005 |
lukem | appease gcc -Wuninitialized
|
| 1.75 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.74 | 29-Oct-2004 |
dsl | Rewrite getdisklabelpart() to avoid problems with isdigit(*ch_ptr) and an incorrect check for a (probably impossible) empty string. Add comments to avoid confusion...
|
| 1.73 | 14-Apr-2004 |
dbj | add support for downgrading a filesystem fslevel from 4 to 3
|
| 1.72 | 14-Apr-2004 |
dbj | set fs_old_nrpos to 1 when doing -c4 upgrade. This isn't used by kernel, but does affect cg layout slightly
|
| 1.71 | 12-Apr-2004 |
dbj | fix whitespace in debug printf
|
| 1.70 | 21-Mar-2004 |
dsl | branches: 1.70.2; Don't use an ffsv1 superblock from 64k (SBLOCK_UFS2) when looking for the main filesystem superblock. 64k is the offset of the first alternate if the blocksize if 64k. Fixes part of PR kern/24809
|
| 1.69 | 20-Jan-2004 |
dbj | don't calculate fake superblock used for finding alternate superblocks if the disklabel is missing the cpg parameter. Also print a warning if this is skipped because of a missing fsize, frag or cpg disklabel parameter this fixes a divide by zero error reported by martin@
|
| 1.68 | 12-Jan-2004 |
dbj | change the message "COVERTING TO FFSv2 SUPERBLOCK" to "CONVERT TO NEW SUPERBLOCK LAYOUT" to help avoid confusion
|
| 1.67 | 10-Jan-2004 |
mrg | - some KNF (80 cols) - fix a printf format issue
|
| 1.66 | 09-Jan-2004 |
dbj | use %#llx instead of %llx when printing incorrect qfmask or qbmask
|
| 1.65 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.64 | 02-Jan-2004 |
dbj | add uuid field to apple ufs volume label
|
| 1.63 | 20-Oct-2003 |
dsl | Add a -q (quiet) option to print nothing for clean filesystems. Support in fsck_ffs and stub in fsck_xxx. Push a few more messages through pwarn() instead of printf() to ensure disk name is shown.
|
| 1.62 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.61 | 11-Apr-2003 |
enami | Correctly detect a UFS1 file system of non-native endian.
|
| 1.60 | 06-Apr-2003 |
fvdl | Write update some old fields when writing the superblock, similar to ffs_oldfscompat_write() in the kernel. Use the old totals when time < old_time (i.e. an old kernel or fsck wrote the filesystem last). When setting the date back on a new kernel, that works out ok, since new kernels always update both fields.
|
| 1.59 | 05-Apr-2003 |
fvdl | Skip checks for old 4.2BSD filesystem; as it stands, we can't deal with writing them. Could be fixed, but doesn't have a high priority.
|
| 1.58 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.57 | 21-Feb-2003 |
fvdl | Only check relevant fields when comparing the superblock to an alternate superblock. Avoids false positives should fsck_ffs be run on a filesystem that was created after the UFS2 code has been merged.
This commit is mostly a forward compatibility patch that can be pulled up in to the 1.6 branch.
From Kirk Mckusick in FreeBSD (setup.c rev. 1.30). Original commit message:
|
| 1.56 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.55 | 05-Nov-2002 |
dbj | check that a disklabel is valid before trying to extract partition information from it when checking for apple ufs filesystems
|
| 1.54 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.53 | 30-Jun-2002 |
dbj | commit fix from pr bin/15449 this fixes FS_42POSTBLFMT compatibility
|
| 1.52 | 19-Dec-2001 |
fvdl | branches: 1.52.2; Don't use the pendinginodes and pendingblocks fields in alternate superblock comparison.
|
| 1.51 | 16-Nov-2001 |
lukem | - changes to -F semantics: - remove the restriction that filesystem must be a regular file - don't try and read a disklabel - use `p' (instead of `h') as the index of the last partition
|
| 1.50 | 18-Sep-2001 |
lukem | add comments to make it clearer what cmpsblks() is doing
|
| 1.49 | 06-Sep-2001 |
lukem | Incorporate the enhanced ffs_dirpref() by Grigoriy Orlov, as found in FreeBSD (three commits; the initial work, man page updates, and a fix to ffs_reload()), with the following differences: - Be consistent between newfs(8) and tunefs(8) as to the options which set and control the tuning parameters for this work (avgfilesize & avgfpdir) - Use u_int16_t instead of u_int8_t to keep track of the number of contiguous directories (suggested by Chuck Silvers) - Work within our FFS_EI framework - Ensure that fs->fs_maxclusters and fs->fs_contigdirs don't point to the same area of memory
The new algorithm has a marked performance increase, especially when performing tasks such as untarring pkgsrc.tar.gz, etc.
The original FreeBSD commit messages are attached:
===== mckusick 2001/04/10 01:39:00 PDT Directory layout preference improvements from Grigoriy Orlov <gluk@ptci.ru>. His description of the problem and solution follow. My own tests show speedups on typical filesystem intensive workloads of 5% to 12% which is very impressive considering the small amount of code change involved.
------
One day I noticed that some file operations run much faster on small file systems then on big ones. I've looked at the ffs algorithms, thought about them, and redesigned the dirpref algorithm.
First I want to describe the results of my tests. These results are old and I have improved the algorithm after these tests were done. Nevertheless they show how big the perfomance speedup may be. I have done two file/directory intensive tests on a two OpenBSD systems with old and new dirpref algorithm. The first test is "tar -xzf ports.tar.gz", the second is "rm -rf ports". The ports.tar.gz file is the ports collection from the OpenBSD 2.8 release. It contains 6596 directories and 13868 files. The test systems are:
1. Celeron-450, 128Mb, two IDE drives, the system at wd0, file system for test is at wd1. Size of test file system is 8 Gb, number of cg=991, size of cg is 8m, block size = 8k, fragment size = 1k OpenBSD-current from Dec 2000 with BUFCACHEPERCENT=35
2. PIII-600, 128Mb, two IBM DTLA-307045 IDE drives at i815e, the system at wd0, file system for test is at wd1. Size of test file system is 40 Gb, number of cg=5324, size of cg is 8m, block size = 8k, fragment size = 1k OpenBSD-current from Dec 2000 with BUFCACHEPERCENT=50
You can get more info about the test systems and methods at: http://www.ptci.ru/gluk/dirpref/old/dirpref.html
Test Results
tar -xzf ports.tar.gz rm -rf ports mode old dirpref new dirpref speedup old dirprefnew dirpref speedup First system normal 667 472 1.41 477 331 1.44 async 285 144 1.98 130 14 9.29 sync 768 616 1.25 477 334 1.43 softdep 413 252 1.64 241 38 6.34 Second system normal 329 81 4.06 263.5 93.5 2.81 async 302 25.7 11.75 112 2.26 49.56 sync 281 57.0 4.93 263 90.5 2.9 softdep 341 40.6 8.4 284 4.76 59.66
"old dirpref" and "new dirpref" columns give a test time in seconds. speedup - speed increasement in times, ie. old dirpref / new dirpref.
------
Algorithm description
The old dirpref algorithm is described in comments:
/* * Find a cylinder to place a directory. * * The policy implemented by this algorithm is to select from * among those cylinder groups with above the average number of * free inodes, the one with the smallest number of directories. */
A new directory is allocated in a different cylinder groups than its parent directory resulting in a directory tree that is spreaded across all the cylinder groups. This spreading out results in a non-optimal access to the directories and files. When we have a small filesystem it is not a problem but when the filesystem is big then perfomance degradation becomes very apparent.
What I mean by a big file system ?
1. A big filesystem is a filesystem which occupy 20-30 or more percent of total drive space, i.e. first and last cylinder are physically located relatively far from each other. 2. It has a relatively large number of cylinder groups, for example more cylinder groups than 50% of the buffers in the buffer cache.
The first results in long access times, while the second results in many buffers being used by metadata operations. Such operations use cylinder group blocks and on-disk inode blocks. The cylinder group block (fs->fs_cblkno) contains struct cg, inode and block bit maps. It is 2k in size for the default filesystem parameters. If new and parent directories are located in different cylinder groups then the system performs more input/output operations and uses more buffers. On filesystems with many cylinder groups, lots of cache buffers are used for metadata operations.
My solution for this problem is very simple. I allocate many directories in one cylinder group. I also do some things, so that the new allocation method does not cause excessive fragmentation and all directory inodes will not be located at a location far from its file's inodes and data. The algorithm is: /* * Find a cylinder group to place a directory. * * The policy implemented by this algorithm is to allocate a * directory inode in the same cylinder group as its parent * directory, but also to reserve space for its files inodes * and data. Restrict the number of directories which may be * allocated one after another in the same cylinder group * without intervening allocation of files. * * If we allocate a first level directory then force allocation * in another cylinder group. */
My early versions of dirpref give me a good results for a wide range of file operations and different filesystem capacities except one case: those applications that create their entire directory structure first and only later fill this structure with files.
My solution for such and similar cases is to limit a number of directories which may be created one after another in the same cylinder group without intervening file creations. For this purpose, I allocate an array of counters at mount time. This array is linked to the superblock fs->fs_contigdirs[cg]. Each time a directory is created the counter increases and each time a file is created the counter decreases. A 60Gb filesystem with 8mb/cg requires 10kb of memory for the counters array.
The maxcontigdirs is a maximum number of directories which may be created without an intervening file creation. I found in my tests that the best performance occurs when I restrict the number of directories in one cylinder group such that all its files may be located in the same cylinder group. There may be some deterioration in performance if all the file inodes are in the same cylinder group as its containing directory, but their data partially resides in a different cylinder group. The maxcontigdirs value is calculated to try to prevent this condition. Since there is no way to know how many files and directories will be allocated later I added two optimization parameters in superblock/tunefs. They are:
int32_t fs_avgfilesize; /* expected average file size */ int32_t fs_avgfpdir; /* expected # of files per directory */
These parameters have reasonable defaults but may be tweeked for special uses of a filesystem. They are only necessary in rare cases like better tuning a filesystem being used to store a squid cache.
I have been using this algorithm for about 3 months. I have done a lot of testing on filesystems with different capacities, average filesize, average number of files per directory, and so on. I think this algorithm has no negative impact on filesystem perfomance. It works better than the default one in all cases. The new dirpref will greatly improve untarring/removing/coping of big directories, decrease load on cvs servers and much more. The new dirpref doesn't speedup a compilation process, but also doesn't slow it down.
Obtained from: Grigoriy Orlov <gluk@ptci.ru> =====
===== iedowse 2001/04/23 17:37:17 PDT Pre-dirpref versions of fsck may zero out the new superblock fields fs_contigdirs, fs_avgfilesize and fs_avgfpdir. This could cause panics if these fields were zeroed while a filesystem was mounted read-only, and then remounted read-write.
Add code to ffs_reload() which copies the fs_contigdirs pointer from the previous superblock, and reinitialises fs_avgf* if necessary.
Reviewed by: mckusick =====
===== nik 2001/04/10 03:36:44 PDT Add information about the new options to newfs and tunefs which set the expected average file size and number of files per directory. Could do with some fleshing out. =====
|
| 1.48 | 03-Sep-2001 |
lukem | no need to assign asb->fs_state twice in cmpsblks()
|
| 1.47 | 03-Sep-2001 |
lukem | deprecate fs_fscktime; we never used it.
in an effort to maintain compatibility with freebsd/openbsd/whatever, i'm attempting to get the superblock format in sync, and freebsd uses the int32_t at this position for `fs_pendinginodes'.
if we ever decide to implement fscktime functionality, we'll: a) make sure to liaise with the other projects to reserve the same spare field b) actually implement the code this time ...
(this is also preparing us for other changes, like the new dirpref code)
|
| 1.46 | 02-Sep-2001 |
lukem | Incorporate fix by iedowse @ FreeBSD to allow disks with large numbers of cylinder groups to work correctly, with minor modifications by me to work with our FFS_EI code. From the FreeBSD commit message:
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
|
| 1.45 | 17-Aug-2001 |
lukem | remove third argument (`int ns') from ffs_sb_swap(), and let ffs_sb_swap() determine the endianness of the `struct fs *o' superblock from o->fs_magic and set needswap as necessary, rather than trusting the caller to get it right. invariably, almost every caller of ffs_sb_swap() was calling it with ns set to the wrong value for ns anyway! ansi KNF ffs_bswap.c declarations whilst here.
this fixes all sorts of problems when trying to use other-endian file systems, notably the kernel trying to access memory *way* off, possibly corrupting or panicing, and userland programs SEGVing and/or corrupting things (e.g, "fsck_ffs -B" to swap a file system endianness).
whilst the previous rev of ffs_bswap.c (1.10, 2000/12/23) made this problem worse, i suspect that the problem was always there and previous versions just happened not to trash things at the wrong time.
FFS_EI should now be a lot more stable.
|
| 1.44 | 15-Aug-2001 |
lukem | - implement -F; treat provided filesystems as images in regular files - replace "filesystem" with "file system" as appropriate - grammar fixes
|
| 1.43 | 04-Jul-2001 |
hubertf | EVEN IF YOU SCREAM, THE COMMANT IS STILL CALLED fsck_ffs !
|
| 1.42 | 04-Feb-2001 |
christos | remove redundant declarations
|
| 1.41 | 26-Jan-2001 |
thorpej | In pass 5, check alternate superblocks for consistency with the current in-core master superblock, and fix them up if they're incorrect. Move the code that writes the alternate superblocks if (cvtlevel || doswap) into pass 5 for efficiency.
Reviewd by Charles Hannum, and used by me to fix up a curdled file system.
|
| 1.40 | 09-Jan-2001 |
mycroft | Remove a bogus piece of code that was never used.
|
| 1.39 | 09-Jan-2001 |
mycroft | Try to cope with cs_ndir being wacky (too large or, particularly when using -b, too damn small) by setting a minimum (1024) and maximum (maxino + 1). This prevents certain operations getting REALLY slow when -b is used, and also avoids overallocating memory if the superblock is hosed.
|
| 1.38 | 05-Jan-2001 |
lukem | use %ll_ instead of the less standard %q_
|
| 1.37 | 15-Nov-1999 |
fvdl | branches: 1.37.4; Changes for softdep code.
|
| 1.36 | 01-May-1999 |
is | branches: 1.36.2; 1.36.6; Fix typo.
|
| 1.35 | 12-Nov-1998 |
christos | Adjust for DKTYPENAME changes.
|
| 1.34 | 26-Jul-1998 |
mycroft | const poisoning.
|
| 1.33 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.32 | 24-Sep-1997 |
lukem | for now, #ifdef out a couple of chunks that were added in the lite2 merge
|
| 1.31 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.30 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.29 | 16-Sep-1997 |
mrg | make these compile on the alpha after WARNS=1.
|
| 1.28 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.27 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.26 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.25 | 21-May-1996 |
mycroft | Oops; use %x to print out masks, not %d.
|
| 1.24 | 21-May-1996 |
mycroft | Check fs_[bf]mask, fs_maxfilesize, fs_maxsymlinklen, and fs_q[bf]mask, since incorrect values may cause the kernel to malfunction.
|
| 1.23 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.22 | 12-Jul-1995 |
cgd | implement a 'force check' flag, '-f'. I used the SunOS name, but the Digital semantics. now: (1) dirty file systems will always be checked; nothing new there. (2) if not '-f' clean file systems will _NEVER_ be checked, i.e. they won't be checked even if -p isn't specified. This allows one to 'fsck -p ; fsck' to preen, then clean up anything that 'fsck -p' barfs on, without waiting for the clean file systems to be checked again. (3) if '-f' clean file systems will ALWAYS be checked. This allows people to put 'fsck -fp' into /etc/rc on systems where they're leery of the FS clean flag state, need the extra reliability, and can afford time 'wasted' in checks. The assumption made here is that if a file system is marked clean, it _IS CLEAN_, really, and shouldn't be checked unless fsck is explicitly told to (with -f). This should be a valid assumption, but may not be in the presence of file system bugs. Documentation updated to note '-f'.
|
| 1.21 | 12-Apr-1995 |
mycroft | Set the clean flag if necessary. If preening, don't check `clean' file systems.
|
| 1.20 | 21-Mar-1995 |
cgd | type sizes
|
| 1.19 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.18 | 28-Dec-1994 |
mycroft | Mostly sync with CSRG.
|
| 1.17 | 27-Dec-1994 |
mycroft | Copy fs_maxcluster when comparing superblocks.
|
| 1.16 | 18-Dec-1994 |
cgd | light clean, and make it compile against new header files.
|
| 1.15 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.14 | 28-Oct-1994 |
mycroft | Use the S_IS*() macros, and make this compile again after Chris's changes to ufs.
|
| 1.13 | 23-Sep-1994 |
mycroft | Remove some more uses of obsolete functions.
|
| 1.12 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.11 | 29-Jun-1994 |
ws | Reads on raw disks are only guarranteed in multiples of the block size
|
| 1.10 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.9 | 25-Apr-1994 |
cgd | oops; changed comparison, but not field!
|
| 1.8 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.7 | 14-Apr-1994 |
cgd | fs type names will soon be strings
|
| 1.6 | 09-Apr-1994 |
deraadt | from <dean@fsa.ca>: let "fsck /usr" work. also, if the user does "fsck /dev/sd0a" attempt to map to the raw device name.
|
| 1.5 | 01-Oct-1993 |
mycroft | Skip check if filesystem is marked clean and isn't too dusty, only with -p. Set clean flag after checking a filesystem.
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.36.6.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.36.2.2 | 26-Oct-1999 |
fvdl | Fix some merge mistakes.
|
| 1.36.2.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.37.4.5 | 25-Nov-2001 |
he | Pull up revision 1.49 (requested by lukem): Pull in enhanced ffs_dirpref() algorithm, which provides a substantial performance improvement through better locality between parent/child directories and their files, and by easing the pressure on the buffer cache for metadata operations.
|
| 1.37.4.4 | 25-Nov-2001 |
he | Pull up revision 1.47 (requested by lukem): Deprecate unused fs_fscktime.
|
| 1.37.4.3 | 25-Nov-2001 |
he | Pull up revision 1.46 (requested by lukem): Change fs_csp[] from being a fixed size to being an array sized as required. This allows file systems with more than about 15500 cylinder groups (on 32-bit systems) to be used.
|
| 1.37.4.2 | 25-Nov-2001 |
he | Pull up revision 1.45 (requested by lukem): Call ffs_sb_swap() with the correct arguments. Fixes problems with using other-endian file systems.
|
| 1.37.4.1 | 24-Nov-2001 |
he | Pull up revisions 1.39-1.43 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.52.2.1 | 23-Feb-2003 |
jmc | Pullup rev 1.57 (requested by fvdl in ticket #1180) Only check relevant fields when comparing the superblock to an alternate superblock. Avoids false positives should fsck_ffs be run on a filesystem that was created after the UFS2 code has been merged.
|
| 1.70.2.1 | 27-Apr-2004 |
jdc | Pull up revisions 1.72-1.73 (requested by dbj in ticket #185)
Fix problems related to superblock upgrade issues which may be experienced by -current users from 2003.
|
| 1.81.10.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.81.10.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.81.8.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.81.2.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.82.6.1 | 10-Jun-2008 |
simonb | Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
Still a number of issues - look in doc/BRANCHES for "simonb-wapbl" for more info.
|
| 1.82.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.84.8.1 | 21-Apr-2010 |
matt | sync to netbsd-5
|
| 1.84.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
| 1.84.2.1 | 03-Oct-2009 |
snj | Pull up following revision(s) (requested by bouyer in ticket #1036): sbin/fsck_ffs/extern.h: revision 1.25 via patch sbin/fsck_ffs/setup.c: revision 1.88 via patch sbin/fsck_ffs/wapbl.c: revision 1.4 via patch sbin/tunefs/tunefs.c: revision 1.41 via patch sys/ufs/ffs/ffs_vfsops.c: revision 1.252 via patch sys/ufs/ffs/ffs_wapbl.c: revision 1.13 via patch Allow tunefs to clear any type of WAPBL log, not only in-filesystem ones. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- If the WAPBL journal can't be read (ffs_wapbl_replay_start() fails), mount the filesystem anyway if MNT_FORCE is present. This allows to still boot single-user a system with a corrupted WAPBL on /, and so get a chance to run fsck to fix it. http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.90.2.2 | 17-Feb-2011 |
bouyer | Move quota2_check_doquota() call so that an unclean, wapbl filesystem will still be ckecked if a quota inode needs to be created.
|
| 1.90.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.92.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.94.2.3 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.94.2.2 | 23-Jan-2013 |
yamt | sync with head
|
| 1.94.2.1 | 17-Apr-2012 |
yamt | sync with head
|
| 1.95.6.3 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.95.6.2 | 23-Jun-2013 |
tls | resync from head
|
| 1.95.6.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.100.14.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.100.10.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.101.12.2 | 21-Apr-2020 |
martin | Sync with HEAD
|
| 1.101.12.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.101.10.1 | 20-Oct-2018 |
pgoyette | Sync with head
|
| 1.101.4.1 | 09-Oct-2018 |
martin | Pull up following revision(s) (requested by hannken in ticket #1051):
sbin/fsck_ffs/setup.c: revision 1.102
Add a test for duplicate inodes on the persistent snapshot list.
|
| 1.102.2.1 | 12-Jul-2025 |
martin | Pull up following revision(s) (requested by mlelstv in ticket #1964):
sbin/fsck_ffs/setup.c: revision 1.110 (patch)
Don't truncate bitmap size to unsigned int, avoids crashes on filesystems with more than 2^32 blocks.
|
| 1.104.2.3 | 12-Jul-2025 |
martin | Pull up following revision(s) (requested by mlelstv in ticket #1135):
sbin/fsck_ffs/setup.c: revision 1.110
Don't truncate bitmap size to unsigned int, avoids crashes on filesystems with more than 2^32 blocks.
|
| 1.104.2.2 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #161):
sbin/fsck_ffs/setup.c: revision 1.106 sbin/fsck_ffs/pass5.c: revision 1.57
ufs: more signed/unsigned fixes
Fix the previous signed/unsigned fixes to build on 32-bit, including applying this commit from FreeBSD:
commit 2d34afcd04207cf3fa3d5b7f467a890eae75da41 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Sun Oct 25 21:04:07 2020 +0000 Use proper type (ino_t) for inode numbers to avoid improper sign extention in the Pass 5 checks. The manifestation was fsck_ffs exiting with this error: ** Phase 5 - Check Cyl groups fsck_ffs: inoinfo: inumber 18446744071562087424 out of range The error only manifests itself for filesystems bigger than about 100Tb. Reported by: Nikita Grechikhin <ngrechikhin at yandex.ru> MFC after: 2 weeks Sponsored by: Netflix
|
| 1.104.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #160):
usr.sbin/makefs/ffs/ffs_alloc.c: revision 1.31 sbin/tunefs/tunefs.c: revision 1.58 sbin/fsck_ffs/setup.c: revision 1.105 sbin/fsck_ffs/pass5.c: revision 1.56 usr.sbin/makefs/ffs.c: revision 1.74 usr.sbin/makefs/ffs/mkfs.c: revision 1.42 usr.sbin/makefs/Makefile: revision 1.40 sys/ufs/ffs/fs.h: revision 1.71 sbin/fsdb/fsdb.c: revision 1.54 sbin/resize_ffs/resize_ffs.c: revision 1.58 sbin/fsck_ffs/pass4.c: revision 1.29 usr.sbin/makefs/ffs/ffs_extern.h: revision 1.9 sbin/newfs/mkfs.c: revision 1.133 sys/ufs/ffs/ffs_alloc.c: revision 1.172 sbin/fsck_ffs/pass1b.c: revision 1.24 usr.sbin/dumpfs/dumpfs.c: revision 1.68 sys/ufs/ffs/ffs_extern.h: revision 1.88 usr.sbin/quotacheck/quotacheck.c: revision 1.51 sys/ufs/ffs/ffs_subr.c: revision 1.54 sbin/fsck_ffs/main.c: revision 1.91 sbin/fsck_ffs/pass1.c: revision 1.63
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckusick@FreeBSD.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare.
|
| 1.109.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.71 | 05-Jul-2023 |
riastradh | Revert "fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S)."
C17 lifted this restriction.
|
| 1.70 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Fix whitespace issues.
- Nix trailing whitespace. - Omit excessive blank lines. - Insert missing blank lines between $NetBSD$ and copyright.
No functional change intended.
|
| 1.69 | 04-Jul-2023 |
riastradh | fsck_ffs(8): Ensure A divides S before aligned_alloc(A, S).
Required by C11 Sec. 7.22.3.1 The aligned_alloc function, para. 2, p. 348:
The value of alignment shall be a valid alignment supported by the implementation and the value of size shall be an integral multiple of alignment.
XXX pullup-10
|
| 1.68 | 14-Jan-2023 |
christos | catch up with sign changes in the fs.h
|
| 1.67 | 17-Nov-2022 |
chs | branches: 1.67.2; Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
| 1.66 | 17-Apr-2020 |
jdolecek | align buffers used for I/O to DEV_BSIZE so it's executed more optimally when run for xbd(4) raw (character) device
|
| 1.65 | 08-Feb-2017 |
rin | branches: 1.65.12; Add smaller versions of fsck_ffs(8) and newfs(8) for install media, where support for Endian-Independent FFS and Apple UFS is disabled unless FFS_EI=1 and APPLE_UFS=1 are added to CRUNCHENV, respectively.
This reduces the size of ramdisk image for atari by over 15KB.
Thanks tsutsui and christos for their useful comments.
|
| 1.64 | 19-Oct-2013 |
christos | branches: 1.64.8; 1.64.12; fix unused variable warnings.
|
| 1.63 | 23-Jun-2013 |
dholland | Stick ffs_ in front of the following macros: fragstoblks() blkstofrags() fragnum() blknum()
to finish the job of distinguishing them from the lfs versions, which Christos renamed the other day.
I believe this is the last of the overtly ambiguous exported symbols from ffs... or at least, the last of the ones that conflicted with lfs. ffs still pollutes the C namespace very broadly (as does ufs) and this needs quite a bit more cleanup.
XXX: boo on macros with lowercase names. But I'm not tackling that just yet.
|
| 1.62 | 23-Jun-2013 |
dholland | fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB() dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()
(Christos already did the lfs ones a few days back)
|
| 1.61 | 22-Jan-2013 |
dholland | Stuff UFS_ in front of a few of ufs's symbols to reduce namespace pollution. Specifically: ROOTINO -> UFS_ROOTINO WINO -> UFS_WINO NXADDR -> UFS_NXADDR NDADDR -> UFS_NDADDR NIADDR -> UFS_NIADDR MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)
Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have the same values in ext2fs and ffs.
No functional change intended.
|
| 1.60 | 09-Jun-2011 |
christos | branches: 1.60.2; 1.60.8; share more code.
|
| 1.59 | 06-Mar-2011 |
bouyer | branches: 1.59.2; merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
| 1.58 | 07-Jan-2010 |
christos | branches: 1.58.2; make this compile again.
|
| 1.57 | 06-Jan-2010 |
christos | PR/42568: Pedro F. Giffuni: Better signal handling from OpenBSD, but simplified.
|
| 1.56 | 31-Jul-2008 |
simonb | Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.55 | 23-Feb-2008 |
christos | branches: 1.55.4; 1.55.6; Make sure that the exit values are always sane, and use symbolic instead of magic constants. Reviewed by go@
|
| 1.54 | 08-Feb-2007 |
drochner | branches: 1.54.4; 1.54.10; 1.54.12; include <signal.h> where signal(3) is used
|
| 1.53 | 20-Mar-2006 |
christos | Coverity CID 2074: Fix memory leak.
|
| 1.52 | 23-Aug-2005 |
tron | Use FFS_MAXNAMLEN instead of MAXNAMLEN.
|
| 1.51 | 19-Aug-2005 |
christos | 64 bit inode changes
|
| 1.50 | 27-Jun-2005 |
christos | sprinkle const.
|
| 1.49 | 20-Jan-2005 |
xtraeme | whitespace (pointed out by wiz@)
|
| 1.48 | 19-Jan-2005 |
xtraeme | Kill __P(), ANSIfy and WARNS=2
|
| 1.47 | 12-Jun-2004 |
mycroft | Use pread()/pwrite().
|
| 1.46 | 13-Apr-2004 |
dbj | fix range error when swapping postbl for compatibility
|
| 1.45 | 15-Jan-2004 |
dbj | branches: 1.45.2; terminate preen message from previous with \n
|
| 1.44 | 15-Jan-2004 |
dbj | if the user specifies both -b and -p, then just go ahead and update the primary superblock.
|
| 1.43 | 09-Jan-2004 |
dbj | do not upgrade superblock or set FS_FLAGS_UPDATED unless -c 4 option is provided. add compatibility for filesystems before FFSv2 integration these patches are from pr port-macppc/23925 and should also fix problems discussed in pr kern/21404 and pr kern/21283
|
| 1.42 | 29-Dec-2003 |
dbj | fix minor bug in buf cache statistic collecting
|
| 1.41 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.40 | 13-Jul-2003 |
itojun | use bounded string op
|
| 1.39 | 14-Apr-2003 |
fvdl | If an alternate superblock is used, update the standard one correctly.
|
| 1.38 | 13-Apr-2003 |
yamt | save and restore errno in signal handlers.
|
| 1.37 | 06-Apr-2003 |
fvdl | Write update some old fields when writing the superblock, similar to ffs_oldfscompat_write() in the kernel. Use the old totals when time < old_time (i.e. an old kernel or fsck wrote the filesystem last). When setting the date back on a new kernel, that works out ok, since new kernels always update both fields.
|
| 1.36 | 02-Apr-2003 |
fvdl | Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
| 1.35 | 24-Jan-2003 |
fvdl | Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
| 1.34 | 28-Sep-2002 |
dbj | Add support for the Apple UFS variation on ffs This is the bulk of PR #17345
The general approach is to use a run time deteriminable value for DIRBLKSIZ. Additional allowances are included for using MAXSYMLINKLEN with FS_42INODEFMT and a shift in the cylinder group cluster summary count array. Support is added for managing the Apple UFS volume label.
|
| 1.33 | 06-May-2002 |
lukem | If SIGINFO is received, display summary information to stderr. Based on changes in FreeBSD, via Chuck Cranor <chuck@research.att.com>
|
| 1.32 | 02-Sep-2001 |
lukem | Incorporate fix by iedowse @ FreeBSD to allow disks with large numbers of cylinder groups to work correctly, with minor modifications by me to work with our FFS_EI code. From the FreeBSD commit message:
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
|
| 1.31 | 15-Aug-2001 |
lukem | - implement -F; treat provided filesystems as images in regular files - replace "filesystem" with "file system" as appropriate - grammar fixes
|
| 1.30 | 04-Feb-2001 |
christos | remove redundant declarations
|
| 1.29 | 09-Jan-2001 |
mycroft | A minor tweak.
|
| 1.28 | 09-Jan-2001 |
enami | Don't swap cg_clustersum(cg)[0]. It doesn't actually exists and it's actually tail of free block bitmap.
XXX swap_cg() should be shared with newfs.
|
| 1.27 | 10-Oct-2000 |
is | Format string cleanups by Bill Sommerfeld.
|
| 1.26 | 15-Nov-1999 |
fvdl | branches: 1.26.4; Changes for softdep code.
|
| 1.25 | 06-May-1998 |
mycroft | branches: 1.25.2; 1.25.4; 1.25.8; copyback_cg() tried to copy too much if the cylinder group info was smaller than 8k. From PR 5404.
|
| 1.24 | 30-Mar-1998 |
mrg | use extern int over extern
|
| 1.23 | 18-Mar-1998 |
bouyer | Add support for non-native byteorder FFS, and converting byteorder. Also, be a bit more conservative with the clean flag: don't mark the FS clean when we know there may still be errors (user anserwed 'n' to a question, or fsck says "you must rerun fsck").
|
| 1.22 | 24-Sep-1997 |
lukem | for now, #ifdef out a couple of chunks that were added in the lite2 merge
|
| 1.21 | 20-Sep-1997 |
lukem | - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h" - explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
|
| 1.20 | 16-Sep-1997 |
lukem | resolve conflicts from lite-2 merge.
|
| 1.19 | 14-Sep-1997 |
lukem | * cleanup for WARNS=1 * deprecate register * cleanup manpage * remove unused docheck() func * prefix hex numbers with '0x' * getopt returns -1 not EOF
|
| 1.18 | 27-Sep-1996 |
christos | - util.h -> fsutil.h
|
| 1.17 | 23-Sep-1996 |
christos | - fixed all printf formats [there were a lot of %l? <-> %? mistakes] - added missing prototypes, and made local functions static - removed parallel preening code; this is part of fsck(8) - use printing utilities from fsck(8) - Makefile does not make links to fsck and fsck.8 - removed -l maxparallel option. It has no meaning anymore.
|
| 1.16 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.15 | 23-Apr-1995 |
cgd | slightly clean rcs ids, etc.
|
| 1.14 | 12-Apr-1995 |
mycroft | Set the clean flag if necessary. If preening, don't check `clean' file systems.
|
| 1.13 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.12 | 10-Feb-1995 |
cgd | functions which are 'fake-varaargs' should be passed longs, not ints.
|
| 1.11 | 05-Dec-1994 |
cgd | more cleanups from Jim Jegers, passed over by me.
|
| 1.10 | 23-Sep-1994 |
mycroft | Eliminate uses of some obsolete functions.
|
| 1.9 | 08-Jun-1994 |
mycroft | Update from 4.4-Lite, with local changes.
|
| 1.8 | 02-May-1994 |
pk | Prototype some things.
|
| 1.7 | 25-Apr-1994 |
cgd | need <sys/time.h>
|
| 1.6 | 09-Apr-1994 |
deraadt | if user does ie, "fsck /etc/group", then types ^C to the CONTINUE prompt do not dump core. fix from <dean@fsa.ca> (who i will stop hounding about bug fixes for an hour or two)
|
| 1.5 | 28-Mar-1994 |
cgd | kill extern'd lseek()
|
| 1.4 | 01-Aug-1993 |
mycroft | Add RCS identifiers.
|
| 1.3 | 23-Mar-1993 |
cgd | changed "Id" to "Header" for rcsids
|
| 1.2 | 22-Mar-1993 |
cgd | added rcs ids to all files
|
| 1.1 | 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
| 1.1.1.3 | 16-Sep-1997 |
lukem | imported from lite-2
|
| 1.1.1.2 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.1.1.1 | 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
| 1.25.8.1 | 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.25.4.2 | 26-Oct-1999 |
fvdl | Fix some merge mistakes.
|
| 1.25.4.1 | 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.25.2.1 | 10-Oct-2000 |
he | Pull up revision 1.27 (requested by is): Format string cleanup.
|
| 1.26.4.3 | 25-Nov-2001 |
he | Pull up revision 1.32 (requested by lukem): Change fs_csp[] from being a fixed size to being an array sized as required. This allows file systems with more than about 15500 cylinder groups (on 32-bit systems) to be used.
|
| 1.26.4.2 | 24-Nov-2001 |
he | Pull up revisions 1.28-1.30 (requested by lukem): Jumbo pullup for fsck_ffs: o fix incorrect error message o mark initialized globals with ``extern'' o make reconnect algorithm O(n) instead of O(n^4) o remove dead code o don't swap cg_clustersum(cg)[0], it's a bitmap o ensure rotor values are positive o some code restructuring o fix byte swapping bug o pass5: check alternate superblocks for consistency with in-core master o fix usage message
|
| 1.26.4.1 | 18-Oct-2000 |
tv | Pullup sbin string format fixes [is]. See "cvs log" for explicit revision numbers per file, from sommerfeld.
|
| 1.45.2.1 | 27-Apr-2004 |
jdc | Pull up revision 1.46 (requested by dbj in ticket #185)
Fix problems related to superblock upgrade issues which may be experienced by -current users from 2003.
|
| 1.54.12.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.54.12.1 | 03-Apr-2008 |
mjf | Sync with HEAD.
|
| 1.54.10.1 | 24-Mar-2008 |
keiichi | sync with head.
|
| 1.54.4.1 | 23-Mar-2008 |
matt | sync with HEAD
|
| 1.55.6.1 | 10-Jun-2008 |
simonb | Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
Still a number of issues - look in doc/BRANCHES for "simonb-wapbl" for more info.
|
| 1.55.4.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.58.2.2 | 30-Jan-2011 |
bouyer | Fix cut-n-paste: compare gid against gid, not uid.
|
| 1.58.2.1 | 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
| 1.59.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
| 1.60.8.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.60.8.1 | 25-Feb-2013 |
tls | resync with head
|
| 1.60.2.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.60.2.1 | 23-Jan-2013 |
yamt | sync with head
|
| 1.64.12.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.64.8.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.65.12.1 | 21-Apr-2020 |
martin | Sync with HEAD
|
| 1.67.2.1 | 13-May-2023 |
martin | Pull up following revision(s) (requested by chs in ticket #162):
sbin/fsck_ffs/inode.c: revision 1.74 sbin/fsck_ffs/utilities.c: revision 1.68 sbin/fsck_ffs/fsck.h: revision 1.57 sbin/fsck_ffs/pass4.c: revision 1.30
catch up with sign changes in the fs.h
|
| 1.6 | 25-Jul-2022 |
dholland | Fix misleading fsck_ffs messages about wapbl journal replay.
Apparently fsck doesn't have a way to replay it to its internal memory only. (Someone(TM) should implement this...)
This means that if you use -n, it can't replay the journal. But the sequence of prints is such that it looks like it did. This is quite misleading. Add an additional specific warning.
|
| 1.5 | 06-Mar-2010 |
mlelstv | When clearing a log on failure, not only ask the kernel to ignore an existing log but to remove it on next mount.
|
| 1.4 | 13-Sep-2009 |
bouyer | Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.3 | 10-Nov-2008 |
joerg | Reduce internals of WAPBL exposed to the rest of the system.
|
| 1.2 | 31-Jul-2008 |
simonb | branches: 1.2.2; 1.2.4; 1.2.6; 1.2.10; Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
| 1.1 | 10-Jun-2008 |
simonb | branches: 1.1.2; file wapbl.c was initially added on branch simonb-wapbl.
|
| 1.1.2.5 | 28-Jul-2008 |
simonb | Add support for creating a WAPBL log in the filesystem. Will create an in-filesystem log on first "mount -o log" if one doesn't exist, and will then continue to use same log in the future. See (soon to be added) wapbl(4) for more info.
Adds a new B_CONTIG low-level allocation flag that uses hints in "struct ffs_inode_ext" to lay out an ffs file's data contiguously.
Thanks to Greg Oster for helping with the design of this and to Antti Kantee for code review and suggestions.
|
| 1.1.2.4 | 12-Jun-2008 |
martin | License police
|
| 1.1.2.3 | 11-Jun-2008 |
simonb | Fix some whitespace and long line niggles.
|
| 1.1.2.2 | 11-Jun-2008 |
simonb | Fix a couple of typos. From wizd.
|
| 1.1.2.1 | 10-Jun-2008 |
simonb | Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
Still a number of issues - look in doc/BRANCHES for "simonb-wapbl" for more info.
|
| 1.2.10.1 | 21-Apr-2010 |
matt | sync to netbsd-5
|
| 1.2.6.1 | 03-Oct-2009 |
snj | Pull up following revision(s) (requested by bouyer in ticket #1036): sbin/fsck_ffs/extern.h: revision 1.25 via patch sbin/fsck_ffs/setup.c: revision 1.88 via patch sbin/fsck_ffs/wapbl.c: revision 1.4 via patch sbin/tunefs/tunefs.c: revision 1.41 via patch sys/ufs/ffs/ffs_vfsops.c: revision 1.252 via patch sys/ufs/ffs/ffs_wapbl.c: revision 1.13 via patch Allow tunefs to clear any type of WAPBL log, not only in-filesystem ones. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- Do some basic checks of the WAPBL journal, to abort the boot before the kernel refuse to mount a filesystem read-write (booting a system multiuser with critical filesystems read-only is bad): Add a check_wapbl() which will check some WAPBL values in the superblock, and try to read the journal via wapbl_replay_start() if there is one. pfatal() if one of these fail (abort boot if in preen mode, as "CONTINUE" otherwise). In non-preen mode the bogus journal will be cleared. check_wapbl() is always called if the superblock supports WAPBL. Even if FS_DOWAPBL is not there, there could be flags asking the kernel to clear or create a log with bogus values which would cause the kernel refuse to mount the filesystem. Discussed in http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups. -- If the WAPBL journal can't be read (ffs_wapbl_replay_start() fails), mount the filesystem anyway if MNT_FORCE is present. This allows to still boot single-user a system with a corrupted WAPBL on /, and so get a chance to run fsck to fix it. http://mail-index.netbsd.org/tech-kern/2009/08/17/msg005896.html and followups.
|
| 1.2.4.3 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.2.4.2 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.2.4.1 | 31-Jul-2008 |
mjf | file wapbl.c was added on branch mjf-devfs2 on 2008-09-28 11:17:11 +0000
|
| 1.2.2.2 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.2.2.1 | 31-Jul-2008 |
wrstuden | file wapbl.c was added on branch wrstuden-revivesa on 2008-09-18 04:28:23 +0000
|
| 1.4 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.3 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.4 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.3 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.3 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.6 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.5 | 20-Aug-2001 |
wiz | precede, not preceed.
|
| 1.4 | 11-Oct-1996 |
thorpej | Bug fix from Kirk McKusick <mckusick@McKusick.COM>:
Fix a bug in fsck_ffs where if a directory somehow develops a hole (that is a block pointer that has a value of zero), fsck would give the filesystem a clean bill of health, but the kernel would panic when accessing the directory with the hole. Fsck now checks for holes in directories. If found in preen mode, fsck fails. In manual mode, it can be directed to shorten the directory to the beginning of the hole. A more complete solution would be to allocate a block to fill the hole. However, this is a lot more work for a `cannot happen' error, so the extra effort seems unwarranted.
|
| 1.3 | 05-Apr-1996 |
cgd | branches: 1.3.4; check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.3.4.1 | 02-Mar-1997 |
mycroft | Pull up changes from Kirk McKusick to check for holes in directories.
|
| 1.5 | 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
|
| 1.4 | 21-Nov-2001 |
wiz | "than" instead of "then".
|
| 1.3 | 05-Apr-1996 |
cgd | check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.5 | 05-Jul-2014 |
dholland | Reorg docs, part 3: Move the documents that are papers to /usr/share/doc/papers. Give them suitable names (including the author and year).
The key property of papers that distinguishes them from documentation is that they're historical: they're published at a particular time and aren't updated or maintained. (Except cosmetically.)
We should only ship papers that are of interest to users, either for historical perspective or because they're the original research writeup of stuff that went into the system and is still pertinent.
The ffs papers clearly meet this standard; the other one here (about passwords, in 1978) is probably past its sell-by date.
|
| 1.4 | 05-Jul-2014 |
dholland | Rework /usr/share/doc.
Update the <bsd.doc.mk> infrastructure, and update the docs to match the new infrastructure.
- Build and install text, ps, pdf, and/or html, not roff sources.
- Don't wire the chapter numbers into the build system, or use them in the installed pathnames. This didn't matter much when the docs were a museum, but now that we're theoretically going to start maintaining them again, we're going to add and remove documents periodically and having the chapter numbers baked in creates a lot of thrashing for no purpose.
- Specify the document name explicitly, rather than implicitly in a path. Use this name (instead of other random strings) as the name of the installed files.
- Specify the document section, which is the subdirectory of /usr/share/doc to install into.
- Allow multiple subdocuments. (That is, multiple documents in one output directory.)
- Enumerate the .png files groff emits along with html so they can be installed.
- Remove assorted hand-rolled rules for running roff and roff widgetry and add enough variable settings to make these unnecessary. This includes support for - explicit use of soelim - refer - tbl - pic - eqn
- Forcibly apply at least minimal amounts of sanity to certain autogenerated roff files.
- Don't exclude USD.doc, SMM.doc, and PSD.doc directories from the build, as they now actually do stuff.
Note: currently we can't generate pdf. This turns out to be a nontrivial problem with no immediate solution forthcoming. So for now, as a workaround, install compressed .ps as the printable form.
|
| 1.3 | 05-Apr-1996 |
cgd | branches: 1.3.82; 1.3.94; check in changes proposed in PR 2006 (approved by J.T.), to rename fsck to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes appropriate filesystem-specific checker programs. For now, the only user-visible change is that the names have changed in the manual page and in error messages; fsck and fsck.8 are now links to fsck_ffs and fsck_ffs.8, until the rest of the transition is complete.
|
| 1.2 | 18-Mar-1995 |
cgd | convert to new RCS Id conventions; reduce my headache
|
| 1.1 | 08-Jun-1994 |
mycroft | branches: 1.1.1; Update from 4.4-Lite, with local changes.
|
| 1.1.1.1 | 13-Jun-1994 |
mycroft | Import 4.4-Lite version.
|
| 1.3.94.1 | 10-Aug-2014 |
tls | Rebase.
|
| 1.3.82.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|