Commit Graph

34 Commits

Author SHA1 Message Date
David E. O'Brien
b2cd1ce8ee Allow enabling soft updates (with -U) on a new filesystem.
[I first added this functionality, and thought to check prior art.  Seeing
OpenBSD had already done this, I changed my addition to reduce the diffs
between the two and went with their option letter.]
Obtained from:	OpenBSD
2001-04-02 01:25:55 +00:00
Ian Dowse
f55ff3f3ef 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
2001-01-15 18:30:40 +00:00
John W. De Boskey
929f494bc7 Cast block number to off_t to avoid possible overflow bugs.
Pointed out by: Bruce Evans <bde@zeta.org.au>
2000-10-24 03:28:59 +00:00
John W. De Boskey
45c29d5cda The write combining code in revision 1.30 needs a few additional
touch ups.  The cache needs to be flushed against block
reads, and a final flush at process termination to force the
backup superblocks to disk.

I believe this will allow 'make release' to complete.

Submitted by:	Tor.Egge@fast.no
2000-10-24 00:08:30 +00:00
Peter Wemm
3927beeda1 Implement simple write combining for newfs - this is particularly useful
for large scsi disks with WCE = 0.  This yields around a 7 times speedup
on elapsed newfs time on test disks here.  64k clusters seems to be the
sweet spot for scsi disks using our present drivers.
2000-10-17 00:41:36 +00:00
Peter Wemm
7f3dea244c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Bill Fumerola
5682c39f91 Don't print a "," after the last superblock.
Submitted by:	adrian
1999-08-21 22:07:27 +00:00
Matthew Dillon
cb84cdb1c4 Fix bug in mount_mfs whereby mount_mfs would sometimes return before
the mount is completely active, causing the next few commands attempting
    to manipulate data on the mount to fail.  mount_mfs's parent now tries
    to wait for the mount point st_dev to change before returning, indicating
    that the mount has gone active.
1999-02-09 17:19:19 +00:00
Doug Rabson
48145dcdb4 Use explicitly sized types when formatting cylinder groups. 1998-08-27 07:38:33 +00:00
Philippe Charnier
e791a73343 Forgot to remove a ';' in my previous commit. 1998-08-12 06:07:43 +00:00
Philippe Charnier
27750b35a5 Add prototypes. Check malloc() return value. Use err(). Remove unused #includes
Do not \n nor dot terminate syslog()/err() messages. -Wall.
1998-07-15 06:28:05 +00:00
Bruce Evans
ca46ad5f48 Fixed printf format errors. 1998-06-28 20:11:23 +00:00
Bruce Evans
5a3e77d851 Fixed overflow in the calculation of the number of inodes per group
for filesystems with almost the maximum number of sectors.  The maxiumum
is 2^31, but overflow is common for that size, and overflow normally
occurred here at size (2^31 - 4096).
1998-05-31 12:21:50 +00:00
Bruce Evans
90e05a748a Don't create superblocks with size larger than SBSIZE (8192). The
size was rounded up to a multiple of the fragment size, but this
gave invalid file systems when the fragment size was > SBSIZE (fsck
aborts early on them).  Now a fragment size of 32768 seems to work
(too-simple tests with fsck and iozone worked).
1998-01-19 16:55:26 +00:00
Peter Wemm
079709dc3a Some tweaks to get this to cope with ELF where the address space starts
higher up in memory (0x0800000 upwards) rather than near zero (0x1000
for our qmagic a.out format).  The method that mount_mfs uses to allocate
the memory within data size rlimits for the ram disk is entirely too much
of a kludge for my liking.  I mean, if it's run as root, surely it makes
sense to just raise the resource limits to infinity or something, and if
it's a non-root user mount (do these work? with mfs?) it could just fail
if it's outside limits.
1997-09-13 11:41:50 +00:00
Bruce Evans
28596d2346 Removed "hack to prevent overflow of a 32bit block number". Lite2 has a
better hack in ffs_vfsops.c.  The hack here restricted the maximum file
size to 2^39 bytes (512GB).  fs_bsize * 2^31 - 1 (16TB for the default
blocksize of 8K) would have been better.  There is no good way to remove
this limit on old BSD4.4 file systems.
1997-07-13 15:13:07 +00:00
Andrey A. Chernov
545cda7db5 Remove srandomdev fallback 1997-06-14 00:17:53 +00:00
Peter Wemm
4af9705ceb Fix the mount_mfs case from the last cleanup. The code was (ab)using
it's internal malloc() implementation to try and avoid overstepping it's
resource limits (yuk!).  Remain using libc's malloc(), but check the
resource limits right before trying to malloc the ramdisk space and leave
some spare memory for libc.  In Andrey's words, the internal malloc
was "true evil"..  Among it's sins is it's ability to allocate less memory
than asked for and still return success.  stdio would just love that. :-)

Reviewed by: ache
1997-03-31 16:43:16 +00:00
Andrey A. Chernov
cb78754c12 Cleanup STANDALONE stuff
Not replace malloc() family for non-standalone variant
Pay attention on malloc() family return code now
Use srandomdev() now for RNG initialization
1997-03-24 15:43:36 +00:00
Guido van Rooij
8f89943eda Add generation number randomization. Newly created filesystems wil now
automatically have random generation numbers. The kenel way of handling those
also changed. Further it is advised to run fsirand on all your nfs exported
filesystems. the code is mostly copied from OpenBSD, with the randomization
chanegd to use /dev/urandom
Reviewed by:	Garrett
Obtained from: OpenBSD
1997-03-23 20:08:22 +00:00
Peter Wemm
75e2941193 Merge from Lite2:
- use new getvfsbyname() and mount(2) interface (mount_mfs)
 - use new fs include files
 - updated inode / cg layout calculations (?)
1997-03-11 12:48:17 +00:00
Alexander Langer
8abdc2eb40 Sweep through the tree fixing mmap() usage:
- Use MAP_FAILED instead of the constant -1 to indicate
    failure (required by POSIX).
  - Removed flag arguments of '0' (required by POSIX).
  - Fixed code which expected an error return of 0.
  - Fixed code which thought any address with the high bit set
    was an error.
  - Check for failure where no checks were present.

Discussed with:	bde
1997-01-16 21:58:40 +00:00
Søren Schmidt
7cb29d3394 This update adds the support for != 512 byte sector SCSI devices to
the sd & od drivers. There is also slight changes to fdisk & newfs
in order to comply with different sectorsizes.
Currently sectors of size 512, 1024 & 2048 are supported, the only
restriction beeing in fdisk, which hunts for the sectorsize of
the device.
This is based on patches to od.c and the other system files by
John Gumb & Barry Scott, minor changes and the sd.c patches by
me.
There also exist some patches for the msdos filesys code, but I
havn't been able to test those (yet).

	John Gumb (john@talisker.demon.co.uk)
	Barry Scott (barry@scottb.demon.co.uk)
1996-12-01 11:25:38 +00:00
Nate Williams
2936258f1d ts_sec -> tv_sec
ts_nsec -> tv_nsec
1996-09-20 04:24:31 +00:00
Joerg Wunsch
768efa9d3c A better algorithm to place the numbers on the lines.
Submitted by:	satoshi
1996-01-30 23:14:34 +00:00
Joerg Wunsch
7f3b8ca95f Make the numbers for the "superblock backups" fit nicely on the screen,
even for larger partitions.  Until now, partition sizes > 500 MB messed
up the screen.
1996-01-25 23:44:32 +00:00
Rodney W. Grimes
5ebc7e6281 Remove trailing whitespace. 1995-05-30 06:12:45 +00:00
David Greenman
c9c23c03fa Flush stdout when writing out each superblock backup. 1995-05-02 07:45:39 +00:00
David Greenman
a3189e21e6 Restrict fs_maxfilesize to 2^40; this is part of a bug fix from Kirk
McKusick to work around problems in FFS related to the blkno of a 64bit
offset not fitting into an int.

Submitted by:	Marshall Kirk McKusick
1994-10-22 02:21:53 +00:00
Poul-Henning Kamp
72ab19aeb7 Added '-F file' option of mount_mfs. This allows me to make floppy images
without waiting for my floppy-drive all the time :-)  Might have other
interesting uses too.
1994-10-12 22:04:36 +00:00
David Greenman
3156bbb2d1 Backed out part of the last change that prevents the rpos table from
being output if <= 1 rpos; there is a bug in the kernel which doesn't
quite get along with this. Changed default #rpos to 1, and fixed up
manual page. Converted nrpos to 1 if user specifies 0.
1994-10-09 20:10:56 +00:00
David Greenman
7ce005d7c1 1) If nrpos <= 1, don't output rpos table (and set fs_cpc to 0) - disabling
the use of the rotational position table.
2) Allow specification of 0 rotational positions (disables function).
3) Make rotdelay=0 and nrpos=0 by default.

   The purpose of the above is to optimize for modern SCSI (and IDE) drives
that do read-ahead/write-behind.
1994-10-01 16:56:22 +00:00
David Greenman
cf8181ddff Set fs_clean. 1994-08-26 10:41:13 +00:00
Rodney W. Grimes
8fae3551ec BSD 4.4 Lite sbin Sources
Note:  XNSrouted and routed NOT imported here, they shall be imported with
usr.sbin.
1994-05-26 06:35:07 +00:00