summaryrefslogtreecommitdiff
path: root/sbin/fsck_ffs
AgeCommit message (Collapse)Author
2011-05-08Small memory optimization from NetBSD; ok krw@ millert@Otto Moerbeek
2011-05-02Remove unused variableCharles Longeau
ok krw@ otto@
2011-04-24remove support for (very) old ffs on-disk formats; ok krw@ and noOtto Moerbeek
objection form the usual suspects
2011-04-16Blend in some code from netbsd and freebsd that reduces memory consumptionOtto Moerbeek
and speeds things up in a lot of cases. Prompted by Amit Kulkarni; ok krw@ on a slighly diffrenent incarnation
2010-08-12Print the real device name followed by the disklabel UID in parenthesisJoel Sing
when fsck is run against a disklabel UID. This allows a user to determine which device is really being scanned. ok krw@
2010-07-09kill redundant docheck() function; ok deraadt@Otto Moerbeek
2010-07-09Avoid crashes by using correct types for block numbers, which can growOtto Moerbeek
large on very large filesystems; reported by Benny Lofgren; partly from FreeBSD. ok deraadt@ beck@ millert@
2010-06-15When fsck_ffs is used with disklabel UIDs the hot root test fails inJoel Sing
blockcheck() since we try to stat() the UID. This means that we fail to reload the mount if we have indeed cleaned the read-only root file system. To avoid this, rerun blockcheck() if the real name is different to the original device name, once we have opened the device with opendev(3). ok krw@ thib@
2010-06-09add missing headers needed for opendev() and close()Charles Longeau
ok jsing@ krw@
2010-06-05Switch fsck_ffs(8) and fsdb(8) to opendev(3) so that they will soon be ableJoel Sing
to operate with disklabel UIDs. ok marco@ krw@ otto@
2010-05-18dont let sys/ioctl.h imply that you get the ioctls in dkio.h. thisDavid Gwynne
gets rid of #include <sys/dkio.h> in sys/ioctl.h and adds #include <sys/dkio.h> to the places that actually want and use the disk ioctls. this became an issue when krw@'s X build failed when he was testing a change to dkio.h. tested by krw@ help from and ok miod@
2010-03-03Add description of -p and remove reference to fstab processing.Otto Moerbeek
Prompted by J.C. Robers; ok jmc@
2010-01-10remove references to docs we no longer install;Jason McIntyre
2010-01-04Stop installing many of the incredibly dated and un-authoritative share/docTheo de Raadt
files. If any information found in these documents is worthwhile and you miss it, please make the time to work it into the manual pages (which people actually do read). ok guenther
2010-01-03Neither .Pp nor unqualified text are allowed at the top level of .Bl;Ingo Schwarze
instead, .It is required. Thus, move .Pp and text before the .Bl, and remove the .Pp altogether where it is not needed. Syntax errors found by mandoc(1), also required to fix the mandoc build; feedback and ok jmc@, and sobrado@ also supports the direction.
2009-12-10do not leak memory, found by parfait, ok millert ottoTheo de Raadt
(one case was a false positive, but one is a modified copy of the other)
2009-10-28rcsid[] and sccsid[] and copyright[] are essentially unmaintained (andTheo de Raadt
unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms
2009-05-29catch funny values of cg_initediblk; make fsck_ffs more robustOtto Moerbeek
against forms of cg header corruption as experienced by todd@; ok millert@
2008-12-29Some forms of inode corruption can make remsize and thus isize goOtto Moerbeek
negative and cause SEGVs. Handle this the same as an out of range blockno. ok jsg@ (also victim) pedro@ thib@
2008-11-09add missing header needed by getpagesize().Charles Longeau
ok millert@
2008-11-06Have called pass pagesize into FS_KERNMAXFILESIZE(), because there is noTheo de Raadt
automatic symbol that has this information. PAGE_SIZE is simply not portable, or even fixed on some systems. ok otto
2008-11-02check for the maximum file size to avoid some out-of-bounds accesses;Otto Moerbeek
ok millert@
2008-06-10reduce mem usage by about 20% by packing state and type of an inode in a singleOtto Moerbeek
byte. Original diff by drahn@; twists by me; ok millert@ thib@
2008-06-10print sizeofs using %zu; ok joris@Otto Moerbeek
2008-06-09The new newfs(8) code causes alternate superblocks to end up inOtto Moerbeek
different locations than before. Actually, the disklabel does not contain enough info to completely reconstruct the locations of all alternate sb's. So use a hardcoded list of all possible 1st alternate sb locations, but don't forget to verify against the label. ok millert@ thib@
2008-05-26reorg fields in structs inodesc and inoinfo to reduce size on some archs; fromOtto Moerbeek
mickey; ok millert@
2007-09-16Do not use DIP() as an lvalue; founc by pcc. ok millert@ ray@Otto Moerbeek
2007-07-17rmoev the macppc workaround, now that isset() and friends use expressionsOtto Moerbeek
that gcc likes better
2007-07-04workaround for [daddr64_t] issue; worked on mostly by otto, wee bit by meTheo de Raadt
2007-06-25Teach fsck_ffs about 64-bit block addresses. ok (and help) moritz@ pedro@Otto Moerbeek
2007-06-01ufs1_daddr_t cleanup, okay otto@Pedro Martelletto
2007-06-01Don't use cg.cg_niblk but fs.fs_ipg; the former has no meaning any more.Otto Moerbeek
Fixes PR 5494; with pedro@; ok pedro@ millert@
2007-06-01convert ufs2_daddr_t -> daddr64_t for greater clarity; ok pedro otto thibTheo de Raadt
2007-05-31convert to new .Dd format;Jason McIntyre
2007-05-29Updated disklabel format to support larger disks and partitions. WeOtto Moerbeek
free room in struct partition by packing fragment size and fragments/block more tighlty and use the resulting space to make offset and size 48 bits. For the disk part we use spare fields in struct disklabel. Kernel converts in-mem copy of the on-disk label if needed, disklabel(8) writes new version. We are careful to only change fields not used by bootloaders. Conception of basic scheme by deraadt. ok deraadt@ krw@
2007-05-18Fix mismerge; remove statement without effect. OK otto@ pedro@Todd C. Miller
2007-05-11pass the right size arg to memset, otherwise we end up with aOtto Moerbeek
partially initialized summary info struct. ok millert@ pedro@
2007-05-05Do not rely on fs_cpg; this is especially important for ffs2 whichTodd C. Miller
does not use fs_cpg at all. From FreeBSD. OK otto@
2007-04-23Remove 'cg_space' from 'struct cg'. Due to the alignment on 64-bitPedro Martelletto
architectures, CGSIZE() was returning something sligthly over one block. The 'new' fsck would round this value up to a fragment boundary, and end up trying to access memory beyond allocated space. From mickey@, okay pedro@, millert@ and otto@.
2007-04-21use the correct size arg to memcmp when checking fs_cstotal.Otto Moerbeek
now jmc does not use 8TB in /tmp anymore. ok pedro@
2007-04-18When trying to read the primary superblock, do not accidentially readOtto Moerbeek
a ffs1 alternate sb at the primary ffs2 sb location. Use the same test as the kernel does. ok millert@ pedro@
2007-04-10Add support for checking ffs2 filesystems. From pedro@ based onTodd C. Miller
the ufs2 changes in FreeBSD by Kirk Mckusick.
2007-03-19be a tiny little bit more verbose when encoutering bad block or fragmentOtto Moerbeek
sizes; requested by mickey@
2007-03-19Add FFS2 fields to the superblock, change file system tools to keepPedro Martelletto
accessing FFS1 fields, okay art@, quite some testing by ckuethe@, simon@ and thib@, thanks.
2007-03-18there's no way we're going to be able to handle illegal block orOtto Moerbeek
fragment sizes, so just make those conditions fatal errors and tell the calling code to go look for alternate superblocks. ok millert@
2007-03-15Check for cg_irotor and cg_frotor being negative, okay millert@ deraadt@Pedro Martelletto
2007-02-16Fix a row of bugs in the code that computes the alternate superblockOtto Moerbeek
locations based on the disklabel. - unit bug: disklabel size is in sectors, but superblock fs size is in fragments. - The disklabel contains the maximum superblock size, not the actual as used by newfs. - problem is that mkfs reduces track/sector and secors/track to make the cylindergroup fit in a fs block. In this case the values in the disklabel do not predict what's in the superblock. This fixes all these problems. It correctly predicts the location of all superblocks on all my filesystems I have online (sized between 100MB and 1000GB). Also tested with filesystems with different block and fragment sizes. Written this with a goto to make the diff easier to read. ok krw@ deraadt@
2007-02-13"Fix" a horrible signal handler. ckfini() breaks all the rules forOtto Moerbeek
signal handlers, calling free() and not being reentrant. This commit fixes to most importamt problem (^C on the "MARK FILESYSTEM CLEAN?" question causes a double free), but actually SIGINT handling should be completely rewritten. ok millert@ deraadt@
2007-02-13Do some extra validation of the superblock, otherwise a corruptOtto Moerbeek
superblock might lead to crashes or other mishap. Now my fuzzed fs images no longer crash fsck_ffs. ok mickey@ pedro@ millert@
2007-02-12remsize must be signed to avoid wrapping around to some huge number.Otto Moerbeek
Solves a case were fsck_ffs was causing a segv. If it didn't do that it would have mangled the filesystem later, very probably. Diff from FreeBSD; ok millert@ pedro@