Commit Graph

25 Commits

Author SHA1 Message Date
jmallett
17460ae6f3 MFp4: Fix copy&paste English error. 2003-03-30 18:00:24 +00:00
jmallett
2b3cee5134 Close the disk file descriptor that is RO before trying to open the
new one, and do not fall back to the RO fd.  There was a bug here
in that the RO fd was never closed, if the RDRW open succeeded, but
this code is bogus anyway, and it breaks newfs of floppies, at least
for me, due to "Device busy."  Anything that wants to fall back is
doing something significantly odd that it should have some more complex
code on its end.
2003-03-28 01:50:11 +00:00
jmallett
b11abed927 Clean up error reporting in block.c, so that it gives honest error strings
for the sorts of errors we run into[1].  This also gives us room to put in a
vaguely appropriate casts to silence warnings since our compiler doesn't like
when we compare ssize_t to size_t[2].  Add a cast in sblock.c[3] to silence
a warning because of signed vs. size_t hell (again).  Clean up nearby
excessive parenthemutilation[4].

Reviewed by:	bde [2] [3]
Suggested by:	bde, many [1]
Submitted by:	bde [4]

An aside about [4], bde notes that we do not check for a negative value for
the fs bsize.  I'm nto going to do that in every situation we use it, one must
expect a reasonable program to pass down reasonable values.  Some foot shooting
protection I will tolerate, some I will not.  Also he suggests some possible
conditional improvements there, which I may take to heart.

PS: For me at least, this is now WARNS=5 clean...
2003-02-19 00:32:48 +00:00
jmallett
fc4b61874d WARNS ?= 2, so idiocy like 1.12 of type.c doesn't have to happen again. 2003-01-30 00:11:01 +00:00
jmallett
746b853b9c Missing "return 0"
Big pointy hat to:	jmallett
Spotted by:		peter
2003-01-30 00:10:24 +00:00
jmallett
994054cea6 API for opening (and tracking) writable file descriptors per disk. 2003-01-29 23:19:46 +00:00
jmallett
3b9e60f68a If we don't know where the sblock is (e.g. filling out a blank disk), then
get it from the fs structure.  Really libufs should have interfaces to generate
both what we export, and what we import, based on eachother, and this should
be full of redundant code to make sure everything is right...  But really, we
don't even deal with checksums, so plenty of room to improve.
2003-01-27 01:57:15 +00:00
jmallett
dd2fdc8704 bwrite, not sbwrite, needs to open for writing and write. 2003-01-23 23:58:22 +00:00
jmallett
070819018f API to fillout a blank disk. For e.g. newfs. 2003-01-23 21:32:56 +00:00
jmallett
ade073ea23 Store not only the current cylinder group in the series (i.e. next that needs
to be read in) but also the last cylinder group in the series (i.e. what is
stored in the structure).
2003-01-19 05:46:23 +00:00
jmallett
70c14dc49d Don't crash when utilities are dumb and try to read less than the disk block
size (dumpfs may try to read the cylinder size (or is is sector size?) by way
of bread).  Prevents a bounds error.
2003-01-19 01:39:53 +00:00
jmallett
445adec218 Add facility to read one, or a string of, cylinger groups. 2003-01-19 01:31:26 +00:00
jmallett
0a0a65bb42 Hunt for a disk to operate on, if we're passed a partition mountpoint, etc.
Concept reviewed by:	phk
2003-01-19 00:43:17 +00:00
jmallett
291746d562 Fix typo. 2003-01-18 05:06:07 +00:00
jmallett
7284e7e47f Nuke dumb error reporting code, people can just use disk::d_error. Unify the
DEBUG and d_error initialisation into an ERROR macro, which can both trace and
set the d_error field.  Much a more meaningful thing, I should say.
2003-01-18 04:22:14 +00:00
mckusick
9251693096 Create a new 32-bit fs_flags word in the superblock. Add code to move
the old 8-bit fs_old_flags to the new location the first time that the
filesystem is mounted by a new kernel. One of the unused flags in
fs_old_flags is used to indicate that the flags have been moved.
Leave the fs_old_flags word intact so that it will work properly if
used on an old kernel.

Change the fs_sblockloc superblock location field to be in units
of bytes instead of in units of filesystem fragments. The old units
did not work properly when the fragment size exceeeded the superblock
size (8192). Update old fs_sblockloc values at the same time that
the flags are moved.

Suggested by:	BOUWSMA Barry <freebsd-misuser@netscum.dyndns.dk>
Sponsored by:   DARPA & NAI Labs.
2002-11-27 02:18:58 +00:00
jmallett
0b72fdc81b Use an error message closer to old dumpfs(8) in the case of truncated/no
superblock.

Submitted by:	kkenn

Can't use it verbatim, at least I hate to, as the ", skipped" bit doesn't
make much sense in a library, to me.
2002-10-22 19:36:10 +00:00
jmallett
df1f55a8e7 Add the concept of a per-disk error string, and a function which prints it
along with the errno, if one is set.
2002-10-22 19:25:58 +00:00
jmallett
47cda62462 Wrap the header to prevent multiple inclusion, and mark the DECLS section.
Reminded by:	Rachel Hestilow <hestilow@ximian.com>
2002-08-22 23:35:35 +00:00
jmallett
9313936769 Initialise disk->d_ufs so that in sblock.c it's always initialised
(unless someone tries to use libufs support functions without using
	_fillout or _ctor to construct a uufsd.)

Obtained from:	jmallett_libufs Perforce branch.
2002-08-11 15:37:10 +00:00
jmallett
9c7ad0f5fd Fill out (zero) and fill in (when doing getino()) the minimum and maximum
inodes in our inoblock (disk->d_ino{min,max}) appropriately.
2002-07-11 21:27:26 +00:00
ru
43e208a3ee No need to explicitly set NOMAN here.
Reviewed by:	jmallett
2002-07-03 06:25:28 +00:00
jmallett
33afc2db3f DEBUG is a knob that means something else in FreeBSD, use LIBUFS_DEBUG to
turn on tracing.
2002-07-01 18:20:48 +00:00
jmallett
1c27521e29 In getino, have our DEBUG message in the unhandled case mention that it
does not know what sort of UFS filesystem this is.

Add some DEBUG(NULL)'s to function entry points.
2002-07-01 18:19:20 +00:00
jmallett
e7f13daa73 Add libufs, a library for dealing with UFS filesystems from userland to
the build.  It is here to compartmentalise functionality currently duplicated
in many notable programs in the base system.  It currently handles block
reads and writes, as well as reading and writing of the filesystem superblock,
and the reading/lookup of inode data.  It supports both UFS and UFS2.  I
will be maintaining it, and porting programs to use it, however for now, it
is simply being built as part of world.
2002-07-01 01:45:03 +00:00