Commit Graph

72 Commits

Author SHA1 Message Date
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
he
e3ab5a24f9 Format fixup. size_t can be long, so cast to u_long and print with %ld. 2000-10-11 21:02:05 +00:00
is
9979da6cbb Format string cleanups by Bill Sommerfeld. 2000-10-10 20:24:49 +00:00
perseant
7d6de39e20 Handle "-m 0" properly (PR #11112). 2000-10-02 16:06:48 +00:00