#
b241767f |
|
19-Feb-2024 |
Kirk McKusick <mckusick@FreeBSD.org> |
Eliminate unnecessary UFS1 integrity checks. The UFS1 integrity checks added in FreeBSD 14 were too aggressive for UFS1 filesystems created in FreeBSD 4 and 9 systems. This patch removes those tests which can be done safely since they are not relevant to the current implementation of UFS1. This is a follow-on report to bug report 264450 (comments 21-28). Reported by: slb@sonnet.com Tested by: slb@sonnet.com PR: 264450 MFC after: 1 week
|
#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
29363fb4 |
|
23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags. Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script. Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
831b1ff7 |
|
27-Jul-2023 |
Kirk McKusick <mckusick@FreeBSD.org> |
UFS/FFS: Migrate to modern uintXX_t from u_intXX_t. As per https://lists.freebsd.org/archives/freebsd-scsi/2023-July/000257.html move to the modern uintXX_t. While here also migrate u_char to uint8_t. Where other kernel interfaces allow, migrate u_long to uint64_t. No functional changes intended. MFC-after: 1 week Sponsored-by: The FreeBSD Foundation
|
#
c79a1416 |
|
27-May-2023 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Verify that the summary information does not extend past the end of the filesystem. No legitimate superblocks should fail as a result of these changes. Reported-by: Robert Morris PR: 271351 MFC-after: 1 week Sponsored-by: The FreeBSD Foundation
|
#
a2d1957b |
|
29-Apr-2023 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Check for an uninitialed (zero valued) fs_maxbsize and set it to its minimum valid size (fs_bsize). Uninitialed fs_maxbsize were left by older versions of makefs(8) and the superblock integrity checks fail when they are found. No legitimate superblocks should fail as a result of these changes. MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
42c82aad |
|
23-Mar-2023 |
Kirk McKusick <mckusick@FreeBSD.org> |
Improve chance of finding an alternate superblock in sbsearch(3). When requesting a superblock read for the sole purpose of getting the parameters needed to find if backup parameters have been stored, specify UFS_NOCSUM as only the base superblock is needed. This change reduces the number of checks that the superblock must pass. MFC after: 1 week
|
#
0eabe330 |
|
07-Mar-2023 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Have to add a check that the computed cylinder group size does not exceed the block size of the filesystem. It is also necessary to validate additional parameters when a superblock is going to be used in read-only mode if its supplementary information is going to be read in to ensure that the size and location of the supplementary information is valid. Also when a warning is raised let it be accepted, but bound the flagged field to the value checked by the warning. No legitimate superblocks should fail as a result of these changes. Reported by: Bob Prohaska, John-Mark Gurney, and Mark Millard Tested by: Peter Holm Reviewed by: Peter Holm MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D38668
|
#
52011f5f |
|
20-Dec-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Format cleanups. No functional change intended. Differential Revision: https://reviews.freebsd.org/D33424
|
#
b13110e9 |
|
16-Dec-2022 |
Alfredo Dal'Ava Junior <alfredo@FreeBSD.org> |
ufs/ffs: detect endian mismatch between machine and filesystem Mount on a LE machine a filesystem formatted for BE is not supported currently. This adds a check for the superblock magic number using swapped bytes to guess and warn the user that it may be a valid superblock but endian is incompatible. MFC after: 2 weeks Reviewed by: mckusick Obtained from: mckusick, alfredo Differential Revision: https://reviews.freebsd.org/D37675
|
#
e15d8f23 |
|
03-Dec-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Minor optimization that makes semantics of check clearer. Sponsored by: The FreeBSD Foundation
|
#
8435a9b2 |
|
17-Nov-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Further updates adding casts to avoid 32-bit multiplication overflow inspired by fixes in commit 017367c1146a69. No legitimate superblocks should fail as a result of these changes. Sponsored by: The FreeBSD Foundation
|
#
017367c1 |
|
24-Oct-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
ffs validate_sblock(): avoid 32bit mul overflow Reported by: soralx@cydem.org Tested by: pho Reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
dcdba346 |
|
03-Oct-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Further updates based on ways Peter Holm found to corrupt UFS superblocks in ways that could cause kernel hangs or crashes. No legitimate superblocks should fail as a result of these changes. Reported by: Peter Holm Tested by: Peter Holm Sponsored by: The FreeBSD Foundation
|
#
82ee4e1c |
|
03-Sep-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Yet more updates based on ways Peter Holm found to corrupt UFS superblocks in ways that could cause kernel hangs or crashes. No legitimate superblocks should fail as a result of these changes. Reported by: Peter Holm Tested by: Peter Holm Sponsored by: The FreeBSD Foundation
|
#
9dee5da7 |
|
29-Aug-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Further updates based on ways Peter Holm found to corrupt UFS superblocks in ways that could cause kernel hangs or crashes. No legitimate superblocks should fail as a result of these changes. Reported by: Peter Holm Tested by: Peter Holm Sponsored by: The FreeBSD Foundation
|
#
f0be378a |
|
26-Aug-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Further updates based on ways Peter Holm found to corrupt UFS superblocks in ways that could cause kernel hangs or crashes. No legitimate superblocks should fail as a result of these changes. Reported by: Peter Holm Tested by: Peter Holm Sponsored by: The FreeBSD Foundation
|
#
e6886616 |
|
13-Aug-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Move the ability to search for alternate UFS superblocks from fsck_ffs(8) into ffs_sbsearch() to allow use by other parts of the system. Historically only fsck_ffs(8), the UFS filesystem checker, had code to track down and use alternate UFS superblocks. Since fsdb(8) used much of the fsck_ffs(8) implementation it had some ability to track down alternate superblocks. This change extracts the code to track down alternate superblocks from fsck_ffs(8) and puts it into a new function ffs_sbsearch() in sys/ufs/ffs/ffs_subr.c. Like ffs_sbget() and ffs_sbput() also found in ffs_subr.c, these functions can be used directly by the kernel subsystems. Additionally they are exported to the UFS library, libufs(8) so that they can be used by user-level programs. The new functions added to libufs(8) are sbfind(3) that is an alternative to sbread(3) and sbsearch(3) that is an alternative to sbget(3). See their manual pages for further details. The utilities that have been changed to search for superblocks are dumpfs(8), fsdb(8), ffsinfo(8), and fsck_ffs(8). Also, the prtblknos(8) tool found in tools/diag/prtblknos searches for superblocks. The UFS specific mount code uses the superblock search interface when mounting the root filesystem and when the administrator doing a mount(8) command specifies the force flag (-f). The standalone UFS boot code (found in stand/libsa/ufs.c) uses the superblock search code in the hope of being able to get the system up and running so that fsck_ffs(8) can be used to get the filesystem cleaned up. The following utilities have not been changed to search for superblocks: clri(8), tunefs(8), snapinfo(8), fstyp(8), quot(8), dump(8), fsirand(8), growfs(8), quotacheck(8), gjournal(8), and glabel(8). When these utilities fail, they do report the cause of the failure. The one exception is the tasting code used to try and figure what a given disk contains. The tasting code will remain silent so as not to put out a slew of messages as it trying to taste every new mass storage device that shows up. Reviewed by: kib Reviewed by: Warner Losh Tested by: Peter Holm Differential Revision: https://reviews.freebsd.org/D36053 Sponsored by: The FreeBSD Foundation
|
#
14821130 |
|
12-Aug-2022 |
Warner Losh <imp@FreeBSD.org> |
stand: Compile out the extensive superblock diagnostic messages for BIOS loader The BIOS loader operates in a very constrained environment. The messages for the super block integrity tests take up about 12k of space. Compile them out for the BIOS loader, while leaving it intact for all other loaders that aren't space constrained. These aren't used in the 'super tiny' *boot* programs, so no adjustment is needed there. We reply on the fact that (a) i386 doesn't support 32-bit UEFI booting and (b) LIBSA_CPUARCH is "i386" when building on both i386 and when we're building the 32-bit libsa32 library. This saves about 12k of space for this constrained envrionment and will take a bit of the pressure off some machines where the loader has grown too big for their BIOS (see comments in i386/loader/Makefile for details). Sponsored by: Netflix Reviewed by: mckusick Differential Revision: https://reviews.freebsd.org/D36175
|
#
d22531d5 |
|
31-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Identify each UFS/FFS superblock integrity check as a warning or fatal error. Identify each of the superblock validation checks as either a warning or a fatal error. Any integrity check that can cause a system hang or crash is marked as fatal. Those that may simply lead to poor file layoutor other less good operating conditions are marked as warning. Normally both fatal and warning are treated as errors and prevent the superblock from being loaded. A new flag, UFS_NOWARNFAIL, is added. When passed to ffs_sbget() it will note warnings that it finds, but will still proceed with loading the superblock. Note that when UFS_NOWARNFAIL is used, it also includes UFS_NOHASHFAIL. No legitimate superblocks should fail as a result of these changes.
|
#
184e3118 |
|
31-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Further updates based on analysis of the way the fields are used in the various filesystem macros defined in fs.h. Eliminate several checks for non-negative values where the fields are checked for specific values. Since these specific values are non-negative, if the value is a verified positive value then it cannot be negative and such a check is redundant and unnecessary. No legitimate superblocks should fail as a result of these changes.
|
#
3e40d2cc |
|
31-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Fix for 548045b a too aggressive UFS superblock integrity check. Reported by: Jenkins
|
#
b21582ee |
|
30-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Add a flags parameter to the ffs_sbget() function that reads UFS superblocks. Rather than trying to shoehorn flags into the requested superblock address, create a separate flags parameter to the ffs_sbget() function in sys/ufs/ffs/ffs_subr.c. The ffs_sbget() function is used both in the kernel and in user-level utilities through export to the sbget() function in the libufs(3) library (see sbget(3) for details). The kernel uses ffs_sbget() when mounting UFS filesystems, in the glabel(8) and gjournal(8) GEOM utilities, and in the standalone library used when booting the system from a UFS root filesystem. The ffs_sbget() function reads the superblock located at the byte offset specified by its sblockloc parameter. The value UFS_STDSB may be specified for sblockloc to request that the standard location for the superblock be read. The two existing options are now flags: UFS_NOHASHFAIL will note if the check hash is wrong but will still return the superblock. This is used by the bootstrap code to give the system a chance to come up so that fsck can be run to correct the problem. UFS_NOMSG indicates that superblock inconsistency error messages should not be printed. It is used by programs like fsck that want to print their own error message and programs like glabel(8) that just want to know if a UFS filesystem exists on a partition. One additional flag is added: UFS_NOCSUM causes only the superblock itself to be returned, but does not read in any auxiliary data structures like the cylinder group summary information. It is used by clients like glabel(8) that just want to check for possible filesystem types. Using UFS_NOCSUM skips the superblock checks for csum data which allows superblocks that have corrupted csum data to be read and used. The validate_sblock() function checks that the superblock has not been corrupted in a way that can crash or hang the system. Unless the UFS_NOMSG flag is specified, it will print out any errors that it finds. Prior to this commit, validate_sblock() returned as soon as it found an inconsistency so would print at most one message. It now does all its checks so when UFS_NOMSG has not been specified will print out everything that it finds inconsistent. Sponsored by: The FreeBSD Foundation
|
#
548045bf |
|
29-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Updates to UFS/FFS superblock integrity checks when reading a superblock. Reorder a few checks to ensure fields have been checked before using them to check other fields. Add eight new checks mostly checking for non-negative values. No legitimate superblocks should fail as a result of these changes.
|
#
36e08b01 |
|
20-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Bug fix to UFS/FFS superblock integrity checks when reading a superblock. A better fix to commit 9e1f44d044a. Rather than coping with the case where a backup superblock is used, catch the case when the superblock is being read in and ensure that the standard one is used rather than the backup one.
|
#
904347a0 |
|
16-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Additional check for UFS/FFS superblock integrity checks. Tested by: Peter Holm PR: 265162
|
#
5bc926af |
|
06-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Bug fix to UFS/FFS superblock integrity checks when reading a superblock. Older versions of growfs(8) failed to correctly update fs_dsize. Filesystems that have been grown fail the test for fs_dsize's correct value. For now we exclude the fs_dsize test from the requirements. Reported by: Edward Tomasz Napiera Tested by: Edward Tomasz Napiera Tested by: Peter Holm MFC after: 1 month (with 076002f24d35) Differential Revision: https://reviews.freebsd.org/D35219
|
#
9e1f44d0 |
|
06-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Bug fix to UFS/FFS superblock integrity checks when reading a superblock. The original check verified that if an alternate superblock has not been selected that the superblock is located in its standard location. For UFS1 the with a 65536 block size, the first backup superblock is at the same location as the UFS2 superblock. Since SBLOCK_UFS2 is the first location checked, the first backup is the superblock that will be used for a UFS1 filesystems with a 65536 block size. This patch allows the use of the first backup superblock in that situation. Reported by: Peter Holm Tested by: Peter Holm MFC after: 1 month (with 076002f24d35) Differential Revision: https://reviews.freebsd.org/D35219
|
#
f3f5368d |
|
06-Jul-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Bug fix to UFS/FFS superblock integrity checks when reading a superblock. The tests for number of cylinder groups (fs_ncg), inodes per cylinder group (fs_ipg), and the size and layout of the cylinder group summary information (fs_csaddr and fs_cssize) were overly restrictive and would exclude some valid filesystems. These updates avoid precluding valid fiesystems while still detecting rogue values that can crash or hang the kernel. Reported by: Chuck Silvers Tested by: Peter Holm MFC after: 1 month (with 076002f24d35) Differential Revision: https://reviews.freebsd.org/D35219
|
#
ce6296ca |
|
23-Jun-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Fix build break in 50dc4c7. No functional change intended. MFC after: 1 month (with 076002f24d35)
|
#
50dc4c7d |
|
23-Jun-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
When a superblock integrity check fails, report the cause of the failure. No functional change intended. MFC after: 1 month (with 076002f24d35) Differential Revision: https://reviews.freebsd.org/D35219
|
#
800a53b4 |
|
11-Jun-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Bug fix to UFS/FFS superblock integrity checks when reading a superblock. One of the checks was that the cylinder group size (fs_cgsize) matched that calculated by CGSIZE(). The value calculated by CGSIZE() has changed over time as the filesystem has evolved. Thus comparing the value of CGSIZE() of the current generation filesystem may not match the size as computed by CGSIZE() that was in effect at the time an older filesystem was created. Therefore the check for fs_cgsize is changed to simply ensure that it is not larger than the filesystem blocksize (fs_bsize). Reported by: Martin Birgmeier Tested by: Martin Birgmeier MFC after: 1 month (with 076002f24d35) PR: 264450 Differential Revision: https://reviews.freebsd.org/D35219
|
#
bc218d89 |
|
31-May-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Two bug fixes to UFS/FFS superblock integrity checks when reading a superblock. Two bugs have been reported with the UFS/FFS superblock integrity checks that were added in commit 076002f24d35. The code checked that fs_sblockactualloc was properly set to the location of the superblock. The fs_sblockactualloc field was an addition to the superblock in commit dffce2150eea on Jan 26 2018 and used a field that was zero in filesystems created before it was added. The integrity check had to be expanded to accept the fs_sblockactualloc field being zero so as not to reject filesystems created before Jan 26 2018. The integrity check set an upper bound on the value of fs_maxcontig based on the maximum transfer size supported by the kernel. It required that fs->fs_maxcontig <= maxphys / fs->fs_bsize. The kernel variable maxphys defines the maximum transfer size permitted by the controllers and/or buffering. The fs_maxcontig parameter controls the maximum number of blocks that the filesystem will read or write in a single transfer. It is calculated when the filesystem is created as maxphys / fs_bsize. The bug appeared in the loader because it uses a maxphys of 128K even when running on a system that supports larger values. If the filesystem was built on a system that supports a larger maxphys (1M is typical) it will have configured fs_maxcontig for that larger system so would fail the test when run with the smaller maxphys used by the loader. So we bound the upper allowable limit for fs_maxconfig to be able to at least work with a 1M maxphys on the smallest block size filesystem: 1M / 4096 == 256. We then use the limit for fs_maxcontig as fs_maxcontig <= MAX(256, maxphys / fs_bsize). There is no harm in allowing the mounting of filesystems that make larger than maxphys I/O requests because those (mostly 32-bit machines) can (very slowly) handle I/O requests that exceed maxphys. Thanks to everyone who helped sort out the problems and the fixes. Reported by: Cy Schubert, David Wolfskill Diagnosis by: Mark Johnston, John Baldwin Reviewed by: Warner Losh Tested by: Cy Schubert, David Wolfskill MFC after: 1 month (with 076002f24d35) Differential Revision: https://reviews.freebsd.org/D35219
|
#
076002f2 |
|
27-May-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Do comprehensive UFS/FFS superblock integrity checks when reading a superblock. Historically only minimal checks were made of a superblock when it was read in as it was assumed that fsck would have been run to correct any errors before attempting to use the filesystem. Recently several bug reports have been submitted reporting kernel panics that can be triggered by deliberately corrupting filesystem superblocks, see Bug 263979 - [meta] UFS / FFS / GEOM crash (panic) tracking which is tracking the reported corruption bugs. This change upgrades the checks that are performed. These additional checks should prevent panics from a corrupted superblock. Although it appears in only one place, the new code will apply to the kernel modules and (through libufs) user applications that read in superblocks. Reported by: Robert Morris and Neeraj Reviewed by: kib Tested by: Peter Holm PR: 263979 MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35219
|
#
187d7e98 |
|
15-May-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Reduce code nesting in readsuper(). No functional change.
|
#
7ef56fb0 |
|
09-Jan-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Avoid unnecessary setting of UFS flag requesting fsck(8) be run. When the kernel is requested to mount a filesystem with a bad superblock check hash, it would set the flag in the superblock requesting that the fsck(8) program be run. The flag is only written to disk as part of a superblock update. Since the superblock always has its check hash updated when it is written to disk, the problem for which the flag has been set will no longer exist. Hence, it is counter-productive to set the flag as it will just cause an unnecessary run of fsck if it ever gets written. Sponsored by: Netflix
|
#
9b8eb1c5 |
|
15-Nov-2021 |
Kirk McKusick <mckusick@FreeBSD.org> |
Followup to f2b391528ad9 to improve printed message. Sponsored by: Netflix
|
#
f2b39152 |
|
15-Nov-2021 |
Kirk McKusick <mckusick@FreeBSD.org> |
Add ability to suppress UFS/FFS superblock check-hash failure messages. When reading UFS/FFS superblocks that have check hashes, both the kernel and libufs print an error message if the check hash is incorrect. This commit adds the ability to request that the error message not be made. It is intended for use by programs like fsck that wants to print its own error message and by kernel subsystems like glabel that just wants to check for possible filesystem types. This capability will be used in followup commits. Sponsored by: Netflix
|
#
b366ee48 |
|
14-Nov-2021 |
Kirk McKusick <mckusick@FreeBSD.org> |
Consolodate four copies of the STDSB define into a single place. The STDSB macro is passed to the ffs_sbget() routine to fetch a UFS/FFS superblock "from the stadard place". It was identically defined in lib/libufs/libufs.h, stand/libsa/ufs.c, sys/ufs/ffs/ffs_extern.h, and sys/ufs/ffs/ffs_subr.c. Delete it from these four files and define it instead in sys/ufs/ffs/fs.h. All existing uses of this macro already include sys/ufs/ffs/fs.h so no include changes need to be made. No functional change intended. Sponsored by: Netflix
|
#
996d40f9 |
|
24-Oct-2020 |
Kirk McKusick <mckusick@FreeBSD.org> |
Various new check-hash checks have been added to the UFS filesystem over various major releases. Superblock check hashes were added for the 12 release and cylinder-group and inode check hashes will appear in the 13 release. When a disk with a UFS filesystem is writably mounted, the kernel clears the feature flags for anything that it does not support. For example, if a UFS disk from a 12-stable kernel is mounted on an 11-stable system, the 11-stable kernel will clear the flag in the filesystem superblock that indicates that superblock check-hashs are being maintained. Thus if the disk is later moved back to a 12-stable system, the 12-stable system will know to ignore its incorrect check-hash. If the only filesystem modification done on the earlier kernel is to run a utility such as growfs(8) that modifies the superblock but neither updates the check-hash nor clears the feature flag indicating that it does not support the check-hash, the disk will fail to mount if it is moved back to its original newer kernel. This patch moves the code that clears the filesystem feature flags from the mount code (ffs_mountfs()) to the code that reads the superblock (ffs_sbget()). As ffs_sbget() is used by the kernel mount code and is imported into libufs(3), all the filesystem utilities will now also clear these flags when they make modifications to the filesystem. As suggested by John Baldwin, fsck_ffs(8) has been changed to accept and repair bad superblock check-hashes rather than refusing to run. This change allows fsck to recover filesystems that have been impacted by utilities older than those created after this change and is a sensible thing to do in any event. Reported by: John Baldwin (jhb@) MFC after: 2 weeks Sponsored by: Netflix
|
#
d90f2c36 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
ufs: clean up empty lines in .c and .h files
|
#
93440bbe |
|
18-Jun-2020 |
Kirk McKusick <mckusick@FreeBSD.org> |
The binary representation of the superblock (the fs structure) is written out verbatim to the disk: see ffs_sbput() in sys/ufs/ffs/ffs_subr.c. It contains a pointer to the fs_summary_info structure. This pointer value inadvertently causes garbage to be stored. It is garbage because the pointer to the fs_summary_info structure is the address the then current stack or heap. Although a mere pointer does not reveal anything useful (like a part of a private key) to an attacker, garbage output deteriorates reproducibility. This commit zeros out the pointer to the fs_summary_info structure before writing the out the superblock. Reviewed by: kib Tested by: Peter Holm PR: 246983 Sponsored by: Netflix
|
#
34816cb9 |
|
18-Jun-2020 |
Kirk McKusick <mckusick@FreeBSD.org> |
Move the pointers stored in the superblock into a separate fs_summary_info structure. This change was originally done by the CheriBSD project as they need larger pointers that do not fit in the existing superblock. This cleanup of the superblock eases the task of the commit that immediately follows this one. Suggested by: brooks Reviewed by: kib PR: 246983 Sponsored by: Netflix
|
#
d9a8abf6 |
|
17-Jun-2020 |
Chuck Silvers <chs@FreeBSD.org> |
Move all of the functions in ffs_subr.c that are only used by the ufs kernel module from that file into ffs_vfsops.c. This fixes the build for kernel configs that don't include FFS. PR: 247256 Submitted by: glebius Reviewed by: mckusick (earlier version) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D25285
|
#
d79ff54b |
|
25-May-2020 |
Chuck Silvers <chs@FreeBSD.org> |
This commit enables a UFS filesystem to do a forcible unmount when the underlying media fails or becomes inaccessible. For example when a USB flash memory card hosting a UFS filesystem is unplugged. The strategy for handling disk I/O errors when soft updates are enabled is to stop writing to the disk of the affected file system but continue to accept I/O requests and report that all future writes by the file system to that disk actually succeed. Then initiate an asynchronous forced unmount of the affected file system. There are two cases for disk I/O errors: - ENXIO, which means that this disk is gone and the lower layers of the storage stack already guarantee that no future I/O to this disk will succeed. - EIO (or most other errors), which means that this particular I/O request has failed but subsequent I/O requests to this disk might still succeed. For ENXIO, we can just clear the error and continue, because we know that the file system cannot affect the on-disk state after we see this error. For EIO or other errors, we arrange for the geom_vfs layer to reject all future I/O requests with ENXIO just like is done when the geom_vfs is orphaned. In both cases, the file system code can just clear the error and proceed with the forcible unmount. This new treatment of I/O errors is needed for writes of any buffer that is involved in a dependency. Most dependencies are described by a structure attached to the buffer's b_dep field. But some are created and processed as a result of the completion of the dependencies attached to the buffer. Clearing of some dependencies require a read. For example if there is a dependency that requires an inode to be written, the disk block containing that inode must be read, the updated inode copied into place in that buffer, and the buffer then written back to disk. Often the needed buffer is already in memory and can be used. But if it needs to be read from the disk, the read will fail, so we fabricate a buffer full of zeroes and pretend that the read succeeded. This zero'ed buffer can be updated and written back to disk. The only case where a buffer full of zeros causes the code to do the wrong thing is when reading an inode buffer containing an inode that still has an inode dependency in memory that will reinitialize the effective link count (i_effnlink) based on the actual link count (i_nlink) that we read. To handle this case we now store the i_nlink value that we wrote in the inode dependency so that it can be restored into the zero'ed buffer thus keeping the tracking of the inode link count consistent. Because applications depend on knowing when an attempt to write their data to stable storage has failed, the fsync(2) and msync(2) system calls need to return errors if data fails to be written to stable storage. So these operations return ENXIO for every call made on files in a file system where we have otherwise been ignoring I/O errors. Coauthered by: mckusick Reviewed by: kib Tested by: Peter Holm Approved by: mckusick (mentor) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D24088
|
#
95ca762d |
|
11-Mar-2020 |
Kirk McKusick <mckusick@FreeBSD.org> |
When mounting a UFS filesystem, return EINTEGRITY rather than EIO when a superblock check-hash error is detected. This change clarifies a mount that failed due to media hardware failures (EIO) from a mount that failed due to media errors (EINTEGRITY) that can be corrected by running fsck(8). Sponsored by: Netflix
|
#
f3cf6225 |
|
06-Sep-2019 |
Conrad Meyer <cem@FreeBSD.org> |
ufs: Remove redundant brelse() after r294954 Same automation. No functional change.
|
#
fdf34aa3 |
|
17-Jul-2019 |
Kirk McKusick <mckusick@FreeBSD.org> |
The error reported in FS-14-UFS-3 can only happen on UFS/FFS filesystems that have block pointers that are out-of-range for their filesystem. These out-of-range block pointers are corrected by fsck(8) so are only encountered when an unchecked filesystem is mounted. A new "untrusted" flag has been added to the generic mount interface that can be set when mounting media of unknown provenance or integrity. For example, a daemon that automounts a filesystem on a flash drive when it is plugged into a system. This commit adds a test to UFS/FFS that validates all block numbers before using them. Because checking for out-of-range blocks adds unnecessary overhead to normal operation, the tests are only done when the filesystem is mounted as an "untrusted" filesystem. Reported by: Christopher Krah, Thomas Barabosch, and Jan-Niclas Hilgert of Fraunhofer FKIE Reported as: FS-14-UFS-3: Out of bounds read in write-2 (ffs_alloccg) Reviewed by: kib Sponsored by: Netflix
|
#
f89d2072 |
|
17-Jun-2019 |
Xin LI <delphij@FreeBSD.org> |
Separate kernel crc32() implementation to its own header (gsb_crc32.h) and rename the source to gsb_crc32.c. This is a prerequisite of unifying kernel zlib instances. PR: 229763 Submitted by: Yoshihiro Ota <ota at j.email.ne.jp> Differential Revision: https://reviews.freebsd.org/D20193
|
#
c8f55fc4 |
|
15-Dec-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Ensure that the inode check-hash is not left zeroed out in the case where the check-hash fails. Prior to the fix in -r342133 the inode with the zeroed out check-hash was written back to disk causing further confusion. Reported by: Gary Jennejohn (gj) Sponsored by: Netflix
|
#
72d28f97 |
|
15-Dec-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash before copying in the inode so that the mode and link-count are not set if the check-hash fails. This change ensures that the vnode will be properly unwound and recycled rather than being held in the cache. Initialize the file mode is zero so that if the loading of the inode fails (for example because of a check-hash failure), the vnode will be properly unwound and recycled. Reported by: Gary Jennejohn (gj) Sponsored by: Netflix
|
#
6fa9bc99 |
|
15-Dec-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Must set ip->i_effnlink = ip->i_nlink to avoid a soft updates "panic: softdep_update_inodeblock: bad link count" when releasing a partially initialized vnode after an inode check-hash failure. Reported by: Gary Jennejohn <gljennjohn@gmail.com> Reported by: Peter Holm (pho) Sponsored by: Netflix
|
#
8f829a5c |
|
11-Dec-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Continuing efforts to provide hardening of FFS. This change adds a check hash to the filesystem inodes. Access attempts to files associated with an inode with an invalid check hash will fail with EINVAL (Invalid argument). Access is reestablished after an fsck is run to find and validate the inodes with invalid check-hashes. This check avoids a class of filesystem panics related to corrupted inodes. The hash is done using crc32c. Note this check-hash is for the inode itself and not any of its indirect blocks. Check-hash validation may be extended to also cover indirect block pointers, but that will be a separate (and more costly) feature. Check hashes are added only to UFS2 and not to UFS1 as UFS1 is primarily used in embedded systems with small memories and low-powered processors which need as light-weight a filesystem as possible. Reviewed by: kib Tested by: Peter Holm Sponsored by: Netflix
|
#
fb14e73c |
|
05-Dec-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Normally when an attempt is made to mount a UFS/FFS filesystem whose superblock has a check-hash error, an error message noting the superblock check-hash failure is printed and the mount fails. The administrator then runs fsck to repair the filesystem and when successful, the filesystem can once again be mounted. This approach fails if the filesystem in question is a root filesystem from which you are trying to boot. Here, the loader fails when trying to access the filesystem to get the kernel to boot. So it is necessary to allow the loader to ignore the superblock check-hash error and make a best effort to read the kernel. The filesystem may be suffiently corrupted that the read attempt fails, but there is no harm in trying since the loader makes no attempt to write to the filesystem. Once the kernel is loaded and starts to run, it attempts to mount its root filesystem. Once again, failure means that it breaks to its prompt to ask where to get its root filesystem. Unless you have an alternate root filesystem, you are stuck. Since the root filesystem is initially mounted read-only, it is safe to make an attempt to mount the root filesystem with the failed superblock check-hash. Thus, when asked to mount a root filesystem with a failed superblock check-hash, the kernel prints a warning message that the root filesystem superblock check-hash needs repair, but notes that it is ignoring the error and proceeding. It does mark the filesystem as needing an fsck which prevents it from being enabled for writing until fsck has been run on it. The net effect is that the reboot fails to single user, but at least at that point the administrator has the tools at hand to fix the problem. Reported by: Rick Macklem (rmacklem@) Discussed with: Warner Losh (imp@) Sponsored by: Netflix
|
#
a02bd3e3 |
|
25-Nov-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Move the check for the filesystem having been run on a kernel that predates metadata check hashes so that it is done before deciding whether to compute a check-hash of the superblock. Reported by: Rick Macklem <rmacklem@uoguelph.ca> Sponsored by: Netflix
|
#
ade67b50 |
|
25-Nov-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Calculate updated superblock check-hash before writing it into the snapshot. This corrects a bug that prevented snapshots from being mounted due to a superblock check-hash failure. Reported by: Brennan Vincent <brennan@umanwizard.com> Tested by: Peter Holm (pho@) Sponsored by: Netflix
|
#
9fc5d538 |
|
13-Nov-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
In preparation for adding inode check-hashes, clean up and document the libufs interface for fetching and storing inodes. The undocumented getino / putino interface has been replaced with a new getinode / putinode interface. Convert the utilities that had been using the undocumented interface to use the new documented interface. No functional change (as for now the libufs library does not do inode check-hashes). Reviewed by: kib Tested by: Peter Holm Sponsored by: Netflix
|
#
ec888383 |
|
23-Oct-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Continuing efforts to provide hardening of FFS, this change adds a check hash to the superblock. If a check hash fails when an attempt is made to mount a filesystem, the mount fails with EINVAL (Invalid argument). This avoids a class of filesystem panics related to corrupted superblocks. The hash is done using crc32c. Check hases are added only to UFS2 and not to UFS1 as UFS1 is primarily used in embedded systems with small memories and low-powered processors which need as light-weight a filesystem as possible. Reviewed by: kib Tested by: Peter Holm Sponsored by: Netflix
|
#
e1c27cf7 |
|
07-Jul-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Import commit from NetBSD with checkin message: Avoid Undefined Behavior in ffs_clusteracct() Change the type of 'bit' variable from int to unsigned int and use unsigned values consistently. sys/ufs/ffs/ffs_subr.c:336:10, shift exponent -1 is negative Detected with Kernel Undefined Behavior Sanitizer. Reported by <Harry Pantazis> Submitted by: Pedro Giffuni
|
#
efbf3964 |
|
01-Mar-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
This change is some refactoring of Mark Johnston's changes in r329375 to fix the memory leak that I introduced in r328426. Instead of trying to clear up the possible memory leak in all the clients, I ensure that it gets cleaned up in the source (e.g., ffs_sbget ensures that memory is always freed if it returns an error). The original change in r328426 was a bit sparse in its description. So I am expanding on its description here (thanks cem@ and rgrimes@ for your encouragement for my longer commit messages). In preparation for adding check hashing to superblocks, r328426 is a refactoring of the code to get the reading/writing of the superblock into one place. Unlike the cylinder group reading/writing which ends up in two places (ffs_getcg/ffs_geom_strategy in the kernel and cgget/cgput in libufs), I have the core superblock functions just in the kernel (ffs_sbfetch/ffs_sbput in ffs_subr.c which is already imported into utilities like fsck_ffs as well as libufs to implement sbget/sbput). The ffs_sbfetch and ffs_sbput functions take a function pointer to do the actual I/O for which there are four variants: ffs_use_bread / ffs_use_bwrite for the in-kernel filesystem g_use_g_read_data / g_use_g_write_data for kernel geom clients ufs_use_sa_read for the standalone code (stand/libsa/ufs.c but not stand/libsa/ufsread.c which is size constrained) use_pread / use_pwrite for libufs Uses of these interfaces are in the UFS filesystem, geoms journal & label, libsa changes, and libufs. They also permeate out into the filesystem utilities fsck_ffs, newfs, growfs, clri, dump, quotacheck, fsirand, fstyp, and quot. Some of these utilities should probably be converted to directly use libufs (like dumpfs was for example), but there does not seem to be much win in doing so. Tested by: Peter Holm (pho@)
|
#
528833fa |
|
25-Feb-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Use a more straight-forward approach to relaxing the location restraints when validating one of the backup superblocks.
|
#
4cbd996a |
|
23-Feb-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Relax the location restraints when validating one of the backup superblocks.
|
#
f686b171 |
|
21-Feb-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Refactor fix in r329600 to do its check once in readsuper() rather than in the two places that call readsuper(). No semantic change intended. Reviewed by: kib
|
#
9f746423 |
|
19-Feb-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Do not free(9) uninitialized pointer. Reported and tested by: allanjude Reviewed by: markj Sponsored by: The FreeBSD Foundation
|
#
16759360 |
|
16-Feb-2018 |
Mark Johnston <markj@FreeBSD.org> |
Fix a memory leak introduced in r328426. ffs_sbget() may return a superblock buffer even if it fails, so the caller must be prepared to free it in this case. Moreover, when tasting alternate superblock locations in a loop, ffs_sbget()'s readfunc callback must free the previously allocated buffer. Reported and tested by: pho Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D14390
|
#
dffce215 |
|
25-Jan-2018 |
Kirk McKusick <mckusick@FreeBSD.org> |
Refactoring of reading and writing of the UFS/FFS superblock. Specifically reading is done if ffs_sbget() and writing is done in ffs_sbput(). These functions are exported to libufs via the sbget() and sbput() functions which then used in the various filesystem utilities. This work is in preparation for adding subperblock check hashes. No functional change intended. Reviewed by: kib
|
#
51369649 |
|
20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
|
#
15c377c3 |
|
31-Oct-2016 |
Ed Maste <emaste@FreeBSD.org> |
ANSIfy ffs_subr.c Also renumber license clause to avoid skipping #3
|
#
e1db6897 |
|
17-Sep-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Reduce size of ufs inode. Remove redunand i_dev and i_fs pointers, which are available as ip->i_ump->um_dev and ip->i_ump->um_fs, and reorder members by size to reduce padding. To compensate added derefences, the most often i_ump access to differentiate between UFS1 and UFS2 dinode layout is removed, by addition of the new i_flag IN_UFS2. Overall, this actually reduces the amount of memory dereferences. On 64bit machine, original struct inode size is 176, reduced to 152 bytes with the change. Tested by: pho (previous version) Reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|
#
98082691 |
|
28-Jul-2015 |
Jeff Roberson <jeff@FreeBSD.org> |
- Make 'struct buf *buf' private to vfs_bio.c. Having a global variable 'buf' is inconvenient and has lead me to some irritating to discover bugs over the years. It also makes it more challenging to refactor the buf allocation system. - Move swbuf and declare it as an extern in vfs_bio.c. This is still not perfect but better than it was before. - Eliminate the unused ffs function that relied on knowledge of the buf array. - Move the shutdown code that iterates over the buf array into vfs_bio.c. Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
113db2dd |
|
24-Apr-2010 |
Jeff Roberson <jeff@FreeBSD.org> |
- Merge soft-updates journaling from projects/suj/head into head. This brings in support for an optional intent log which eliminates the need for background fsck on unclean shutdown. Sponsored by: iXsystems, Yahoo!, and Juniper. With help from: McKusick and Peter Holm
|
#
b6842439 |
|
23-Nov-2008 |
Sam Leffler <sam@FreeBSD.org> |
prepare makefs for import to base
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
60727d8b |
|
06-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|
#
f65de26b |
|
10-Jul-2004 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Update for the KDB debugger framework: o Make debugging code conditional upon KDB. o Use kdb_backtrace() instead of backtrace(). o Remove inclusion of opt_ddb.h.
|
#
012d4134 |
|
06-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and irc message from Robert Watson saying that clause 3 can be removed from those files with an NAI copyright that also have only a University of California copyrights. Approved by: core, rwatson
|
#
f4636c59 |
|
11-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
#
b4b138c2 |
|
18-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Including <sys/stdint.h> is (almost?) universally only to be able to use %j in printfs, so put a newsted include in <sys/systm.h> where the printf prototype lives and save everybody else the trouble.
|
#
de6ba7c0 |
|
27-Dec-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move the allocation of the inode contents into ffs_vfsops.c rather than passing malloc types around.
|
#
c3a0d1d4 |
|
31-Jul-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
I forgot this bit of uglyness in the fsck_ffs cleanup.
|
#
17b1994b |
|
30-Jul-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move ffs_isfreeblock() to ffs_alloc.c and make it static. Sponsored by: DARPA & NAI Labs.
|
#
cfbf0a46 |
|
23-Jun-2002 |
Maxime Henrion <mux@FreeBSD.org> |
Warning fixes for 64 bits platforms. This eliminates all the warnings I have had in the FFS code on sparc64. Reviewed by: mckusick
|
#
1c85e6a3 |
|
21-Jun-2002 |
Kirk McKusick <mckusick@FreeBSD.org> |
This commit adds basic support for the UFS2 filesystem. The UFS2 filesystem expands the inode to 256 bytes to make space for 64-bit block pointers. It also adds a file-creation time field, an ability to use jumbo blocks per inode to allow extent like pointer density, and space for extended attributes (up to twice the filesystem block size worth of attributes, e.g., on a 16K filesystem, there is space for 32K of attributes). UFS2 fully supports and runs existing UFS1 filesystems. New filesystems built using newfs can be built in either UFS1 or UFS2 format using the -O option. In this commit UFS1 is the default format, so if you want to build UFS2 format filesystems, you must specify -O 2. This default will be changed to UFS2 when UFS2 proves itself to be stable. In this commit the boot code for reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c) as there is insufficient space in the boot block. Once the size of the boot block is increased, this code can be defined. Things to note: the definition of SBSIZE has changed to SBLOCKSIZE. The header file <ufs/ufs/dinode.h> must be included before <ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and ufs_lbn_t. Still TODO: Verify that the first level bootstraps work for all the architectures. Convert the utility ffsinfo to understand UFS2 and test growfs. Add support for the extended attribute storage. Update soft updates to ensure integrity of extended attribute storage. Switch the current extended attribute interfaces to use the extended attribute storage. Add the extent like functionality (framework is there, but is currently never used). Sponsored by: DARPA & NAI Labs. Reviewed by: Poul-Henning Kamp <phk@freebsd.org>
|
#
05f4ff5d |
|
13-May-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove register keyword. Sponsored by: DARPA & NAI Labs. Submitted by: mckusick
|
#
6f1e8551 |
|
19-Mar-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove __P.
|
#
3c7a8027 |
|
01-May-2001 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove blatantly pointless call to VOP_BMAP(). Use ufs_bmaparray() rather than VOP_BMAP() on our own vnodes.
|
#
589c7af9 |
|
07-Mar-2001 |
Kirk McKusick <mckusick@FreeBSD.org> |
Fixes to track snapshot copy-on-write checking in the specinfo structure rather than assuming that the device vnode would reside in the FFS filesystem (which is obviously a broken assumption with the device filesystem).
|
#
9626b608 |
|
05-May-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>. <sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes. Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data. Still a few bogus uses of struct buf to track down. Repocopy by: peter
|
#
c4473420 |
|
28-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
#
c3aac50f |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
5b1b6c58 |
|
12-Jan-1999 |
Eivind Eklund <eivind@FreeBSD.org> |
Silence warning about unused debug function. (I'll turn this function into a DDB command in my next staticization sweep).
|
#
672be20b |
|
28-Nov-1998 |
Bruce Evans <bde@FreeBSD.org> |
Don't use the strange null pointer constant `(ufs_daddr_t)0' in a call to VOP_BMAP(). Don't use uncast NULLs in the same call.
|
#
08637435 |
|
28-Mar-1998 |
Bruce Evans <bde@FreeBSD.org> |
Moved some #includes from <sys/param.h> nearer to where they are actually used.
|
#
b1897c19 |
|
08-Mar-1998 |
Julian Elischer <julian@FreeBSD.org> |
Reviewed by: dyson@freebsd.org (john Dyson), dg@root.com (david greenman) Submitted by: Kirk McKusick (mcKusick@mckusick.com) Obtained from: WHistle development tree
|
#
721a23b1 |
|
12-Feb-1998 |
Bruce Evans <bde@FreeBSD.org> |
Removed unnecessary dependencies on KERNEL and DIAGNOSTIC. This was more useful when opt_diagnostic.h had to be included.
|
#
0b08f5f7 |
|
05-Feb-1998 |
Eivind Eklund <eivind@FreeBSD.org> |
Back out DIAGNOSTIC changes.
|
#
47cfdb16 |
|
04-Feb-1998 |
Eivind Eklund <eivind@FreeBSD.org> |
Turn DIAGNOSTIC into a new-style option.
|
#
1cd52ec3 |
|
05-Dec-1997 |
Bruce Evans <bde@FreeBSD.org> |
Don't include <sys/lock.h> in headers when only `struct simplelock' is required. Fixed everything that depended on the pollution.
|
#
cb451ebd |
|
22-Nov-1997 |
Bruce Evans <bde@FreeBSD.org> |
Staticized.
|
#
c5697b1f |
|
18-Nov-1997 |
Bruce Evans <bde@FreeBSD.org> |
Removed an unused #include in the `#ifdef KERNEL' case. Fixed a comment to match the code. The code is still wrong (ffs_checkoverlap() should be staticized and called from a ddb command).
|
#
cec0f20c |
|
16-Oct-1997 |
Poul-Henning Kamp <phk@FreeBSD.org> |
VFS mega cleanup commit (x/N) 1. Add new file "sys/kern/vfs_default.c" where default actions for VOPs go. Implement proper defaults for ABORTOP, BWRITE, LEASE, POLL, REVOKE and STRATEGY. Various stuff spread over the entire tree belongs here. 2. Change VOP_BLKATOFF to a normal function in cd9660. 3. Kill VOP_BLKATOFF, VOP_TRUNCATE, VOP_VFREE, VOP_VALLOC. These are private interface functions between UFS and the underlying storage manager layer (FFS/LFS/MFS/EXT2FS). The functions now live in struct ufsmount instead. 4. Remove a kludge of VOP_ functions in all filesystems, that did nothing but obscure the simplicity and break the expandability. If a filesystem doesn't implement VOP_FOO, it shouldn't have an entry for it in its vnops table. The system will try to DTRT if it is not implemented. There are still some cruft left, but the bulk of it is done. 5. Fix another VCALL in vfs_cache.c (thanks Bruce!)
|
#
5ace3b26 |
|
08-Mar-1997 |
Mike Pritchard <mpp@FreeBSD.org> |
Update a number of panic messages to reflect the actual name of the routine that caused the panic.
|
#
6875d254 |
|
22-Feb-1997 |
Peter Wemm <peter@FreeBSD.org> |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
d2b52eb2 |
|
10-Feb-1997 |
Mike Pritchard <mpp@FreeBSD.org> |
Make ffs_subr.c compile when DIAGNOSTIC is defined. It looks like this was broken before the Lite2 merge :-(. VOP_BMAP was being called with the wrong number of arguments.
|
#
996c772f |
|
09-Feb-1997 |
John Dyson <dyson@FreeBSD.org> |
This is the kernel Lite/2 commit. There are some requisite userland changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes. The system boots and can mount UFS filesystems. Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed. Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
|
#
1130b656 |
|
14-Jan-1997 |
Jordan K. Hubbard <jkh@FreeBSD.org> |
Make the long-awaited change from $Id$ to $FreeBSD$ This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
e1eec28a |
|
11-Mar-1996 |
Peter Wemm <peter@FreeBSD.org> |
Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all files are off the vendor branch, so this should not change anything. A "U" marker generally means that the file was not changed in between the 4.4Lite and Lite-2 releases, and does not need a merge. "C" generally means that there was a change.
|
#
0e41ee30 |
|
04-Jan-1996 |
Garrett Wollman <wollman@FreeBSD.org> |
Convert DDB to new-style option.
|
#
b8dce649 |
|
17-Dec-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Staticize.
|
#
c83ebe77 |
|
03-Sep-1995 |
John Dyson <dyson@FreeBSD.org> |
Added VOP_GETPAGES/VOP_PUTPAGES and also the "backwards" block count for VOP_BMAP. Updated affected filesystems...
|
#
9b2e5354 |
|
30-May-1995 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Remove trailing whitespace.
|
#
c1d9efcb |
|
09-Oct-1994 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Cosmetics. make gcc less noisy. Still some way to go here.
|
#
3c4dd356 |
|
02-Aug-1994 |
David Greenman <dg@FreeBSD.org> |
Added $Id$
|
#
df8bae1d |
|
24-May-1994 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
BSD 4.4 Lite Kernel Sources
|