Commit Graph

75 Commits

Author SHA1 Message Date
ad 0e7216ebf1 brelse() now takes two args. 2007-10-08 21:42:33 +00:00
hubertf df06563bc3 Remove more duplicate #includes,
from Slava Semushin <slava.semushin@gmail.com>
2007-01-17 21:59:49 +00:00
christos b8a730da20 c99 initializer 2006-10-16 03:15:46 +00:00
riz 3d1e464b85 Deal with wedges and the new disk geometry structures, instead of using
struct disklabel.  From Christos Zoulas.
2006-09-05 19:44:44 +00:00
perseant fb882cd53a Ensure sector size is zero in the debug case, to avoid a division by zero
error pointed out by Zafer Aydogan.
2006-08-06 00:21:14 +00:00
perseant f4bbda4f6c Don't try to even fake building a filesystem on a file descriptor that is
neither a file nor a character special device.
2006-08-06 00:14:17 +00:00
mrg d2eb498e2b - log2() -> lfs_log2().
- fix a couple of entries in struct lfs lfs_default:
	- in a comment, it's called dlfs_freehd now
	- dlfs_inodefmt comes after dlfs_tstamp.  fortunately for this
	one, LFS_44INODEFMT is also 0 so the right thing was happening.
2006-05-11 16:56:50 +00:00
perseant efc48a3bfa newfs_lfs(8) compoment of the recent superblock parameter addition. Change
the wording of the explanation of the -M option, detail a new -R option
that controls initial setting of the new parameter.
2006-05-04 04:39:15 +00:00
jld aab6081169 When testing seek speed (for the -A option), use sector-aligned offsets
so the reads don't always fail, and also be more careful not to read off
the end of the disk.  If a read does fail, error out instead of silently
leaving the loop early (and possibly dividing by zero seconds), because
it means our idea of the disk size is wrong, or worse.

This fixes PR bin/33199.
2006-04-23 07:56:58 +00:00
rumble e948e1b17f Check for allocation failures in malloc, calloc, realloc, asprintf, and
vasprintf and try to handle them.
2006-03-17 15:53:46 +00:00
christos 6d662c2dfa make this compile again. 2005-09-13 04:40:25 +00:00
yamt 653be60965 even with -F, don't overwrite p_size unless filesystem size is
specified by -s.
2005-08-22 09:19:19 +00:00
christos e4b2253c50 add const. 2005-06-27 02:05:30 +00:00
lukem a0618cd165 appease gcc -Wuninitialized 2005-06-02 00:48:48 +00:00
perseant 4c0e96afd6 Use the buffer cache improvements from fsck_lfs. Make it build again. 2005-04-12 01:06:39 +00:00
perseant 7f73a7b740 "#define lfs_devvp lfs_unlockvp" for readability, since that's what we
use it for in fsck_lfs/newfs_lfs.
2005-03-25 20:17:58 +00:00
perseant 5d2f3e4908 Various minor LFS improvements:
* Extend the lfs library from fsck_lfs(8) so that it can be used with a
  not-yet-existent LFS.  Make newfs_lfs(8) use this library, so it can
  create LFSs whose Ifile is larger than one segment.
* Make newfs_lfs(8) use strsuftoi64() for its arguments, a la newfs(8).
* Make fsck_lfs(8) respect the "file system is clean" flag.
* Don't let fsck_lfs(8) think it has dirty blocks when invoked with the
  -n flag.
2005-02-26 05:45:54 +00:00
dsl 9ab983c04a Add (unsigned char) cast to ctype function 2004-10-29 19:04:39 +00:00
yamt 48f5be416a - calculate maxfilesize dynamically rather than having a static table.
- no longer limit filesize to INT32_MAX.  file lbns are 64-bit these days.
  anyway, on-disk format shouldn't be limited by the kernel internals.
2004-09-11 08:33:53 +00:00
yamt 6928fd95a8 fix a sign expansion bug for >=8k blocksizes. 2004-09-09 22:57:19 +00:00
yamt 3223caeba2 remove definitions for ffs, which don't belong here. 2003-12-17 05:08:43 +00:00
wiz ee1b406595 Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
2003-11-10 08:51:51 +00:00
yamt d59161d069 - don't try to write alt super blocks beyond the end of the partition.
- flush stdout when printing each super block addresses.
2003-10-09 14:28:34 +00:00
itojun e2c411ce3c use arc4random 2003-09-06 12:42:00 +00:00
dsl b4c1c6117c Stop superblock being written to sector 0 for small filesystems.
Honour the '-s size' command option.
Allow an LFS filesystem to be created in a file.
2003-08-12 08:41:36 +00:00
agc 276d62f603 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
2003-08-07 10:04:22 +00:00
itojun d90a2369ab use bounded string ops 2003-07-13 07:39:39 +00:00
fvdl 42614ed3f3 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.
2003-04-02 10:39:19 +00:00
simonb 668973e677 Use the PRId64 format to print a daddr_t. 2003-02-23 05:21:18 +00:00
perseant 0cfa2c5369 Discourage the creation of new LFSv1 filesystems. 2003-02-23 04:53:17 +00:00
perseant 8685c52d63 Make the "-O" (start filesystem offset) flag to newfs_lfs work correctly,
and update fsck_lfs and dumplfs to deal with it.  Note that while the argument
to -O is given in disk sectors, it must be a multiple of the fragment size,
and although it can be lower than the label or superblock, it can't intersect
either.
2003-02-23 04:32:05 +00:00
fvdl a3ff3a3038 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.
2003-01-24 21:55:02 +00:00
scw 6054b38a2b Use getlabeloffset() instead of LABELOFFSET. 2002-12-12 11:40:17 +00:00
wiz 2fb4b1db52 New sentence, new line. By Robert Elz with minimal fixes. 2002-10-01 13:40:23 +00:00
perseant d484b67904 Don't use adaptive measuring techniques to discover a good segment size,
if the device is not a character device (they will give bogus results
if they interact with the buffer cache).
2002-08-29 19:51:58 +00:00
lukem 7360d7b6ae Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path 2002-08-19 10:16:51 +00:00
wiz c632c8bea4 __STDC__ is always defined on NetBSD. 2002-05-25 23:45:12 +00:00
wiz 65c4d36952 Use mdoc macros instead of man ones. 2002-01-21 18:23:09 +00:00
wiz 39304f2bbb Punctuation fixes, sort SEE ALSO, use an mdoc macros instead of two man macros. 2001-11-16 12:05:00 +00:00
wiz 4ce43ae0cd Whitespace nits 2001-11-16 10:25:42 +00:00
lukem 3d6fc56715 fix -Wshadow warning by moving "int version" from global to main() scope 2001-11-01 07:44:05 +00:00
mason 44c196b374 The default version created by newfs_lfs without arguments is, in fact, 2. 2001-09-08 03:49:44 +00:00
thorpej 8f43f0ca06 Fix printf format on LP64. 2001-07-13 21:09:55 +00:00
perseant 4e3fced95b Merge the short-lived perseant-lfsv2 branch into the trunk.
Kernels and tools understand both v1 and v2 filesystems; newfs_lfs
generates v2 by default.  Changes for the v2 layout include:

- Segments of non-PO2 size and arbitrary block offset, so these can be
  matched to convenient physical characteristics of the partition (e.g.,
  stripe or track size and offset).

- Address by fragment instead of by disk sector, paving the way for
  non-512-byte-sector devices.  In theory fragments can be as large
  as you like, though in reality they must be smaller than MAXBSIZE in size.

- Use serial number and filesystem identifier to ensure that roll-forward
  doesn't get old data and think it's new.  Roll-forward is enabled for
  v2 filesystems, though not for v1 filesystems by default.

- The inode free list is now a tailq, paving the way for undelete (undelete
  is not yet implemented, but can be without further non-backwards-compatible
  changes to disk structures).

- Inode atime information is kept in the Ifile, instead of on the inode;
  that is, the inode is never written *just* because atime was changed.
  Because of this the inodes remain near the file data on the disk, rather
  than wandering all over as the disk is read repeatedly.  This speeds up
  repeated reads by a small but noticeable amount.

Other changes of note include:

- The ifile written by newfs_lfs can now be of arbitrary length, it is no
  longer restricted to a single indirect block.

- Fixed an old bug where ctime was changed every time a vnode was created.
  I need to look more closely to make sure that the times are only updated
  during write(2) and friends, not after-the-fact during a segment write,
  and certainly not by the cleaner.
2001-07-13 20:30:18 +00:00
wiz 73f545bb5b Drop arguments of .Os. 2001-06-05 11:22:41 +00:00
perseant 8a3e9fdf9d Add "-A" option to autoconfigure the segment size based on measured
bandwidth and seek time of the disk, using the "4 * bandwidth * seek
time" formula from Neefe-Matthews' 1997 paper.  An RZ25 disk with this
option gets 200K segments.  Reference the paper in the manual page.
2000-12-05 19:51:14 +00:00
perseant 262e70b7e7 Initialize inodes' generation number to 1, consistent with their version
number.
2000-11-23 23:09:57 +00:00
hubertf 1320b80b0e xref lfs_cleanerd(8) in SEE ALSO 2000-11-08 19:43:16 +00:00
hubertf 4fdbe215a1 In SEE ALSO:
* it's dump_lfs(8), not dumplfs(8)
 * xref mount_lfs(8)
2000-11-08 19:37:46 +00:00
he 5b7047ce18 The type of sizeof() can be u_long, so cast to that and print with %ld. 2000-10-11 21:08:54 +00:00