Commit Graph

532 Commits

Author SHA1 Message Date
phk
8ece7cbc43 When a GEOM (/dev-)device is closed and we find that I/O requests are
still outstanding, give them a chance to complete.

If after 10 seconds we still find outstanding I/O requests, complete
the close with a console warning that the system is likely to panic
later on.

This is a workaround for umount -f not quite doing the right thing.

Approved by:    re/scottl
2003-05-09 21:25:28 +00:00
phk
4e002d7a93 Hide the "ENOMEM" notice messages behind bootverbose. They are still
a valuable debugging tool for certain kinds of problems.

Approved by:	re/scottl
2003-05-07 05:37:31 +00:00
phk
3cc52c15ec Fix the WARNING for wrong rawoffset, I tested incompatible units.
Approved by:	re/jhb
2003-05-06 19:36:13 +00:00
phk
410334cfe0 Avoid double-free panic.
Tripped up:	DougB
2003-05-05 15:52:11 +00:00
phk
3f2e0ad16d Re-order the the initialization slightly to improve structure. 2003-05-05 08:58:12 +00:00
phk
d6ece911bb Use a dedicated malloc(9) bucket for sector storage. 2003-05-05 08:37:07 +00:00
phk
0c30fa28a2 Don't warn if the rawoffset is zero, that is actually the best value it
could have.
2003-05-05 08:30:59 +00:00
phk
9f0560bebc Turn the check that rawoffset == mbroffset into a warning instead. 2003-05-05 06:46:49 +00:00
phk
aac4aea759 Only accept a rawoffset if it is identical to the mbroffset. 2003-05-04 19:26:31 +00:00
phk
aa1b7d74da Add a way to read the current mbroffset from a BSD label class. 2003-05-04 19:25:48 +00:00
phk
f1297dcac6 Add gctl_set_param() function. 2003-05-04 19:24:34 +00:00
phk
eb7e0cd5d2 Remove debugging printfs which should not have been committed. 2003-05-04 18:48:25 +00:00
phk
bbc021cef5 Add a OAM interface for changing the label and writing the boot code. 2003-05-03 08:01:34 +00:00
phk
3644496d4a remove unused variables.
Spotted by:	dougb
2003-05-03 07:12:15 +00:00
phk
2a47b08091 Make bsd_disklabel_le_enc calculate the checksum and fill it in.
(If there is a legitimate need to correctly encode and pack a
disklabel with an invalid checksum custom tools can be built for
that.)

Make bsd_disklabel_le_dec() validate the magics, number of partitions
(against a new parameter) and the checksum.

Vastly simplify the logic of the GEOM::BSD class implementation:

Let g_bsd_modify() always take a byte-stream label.

This simplifies all users, except the ioctl's which now have to
convert to a byte-stream first.  Their loss.

g_bsd_modify() is called with topology held now, and it returns
with it held.

Always update the md5sum in g_bsd_modify(), otherwise the check
is no use after the first modification of the label.  Make the
MD5 over the bytestream version of the label.

Move the rawoffset hack to g_bsd_modify() and remove all the
inram/ondisk conversions.

Don't configure hotspots in g_bsd_modify(), do it in taste instead,
we do not support moving the label to a different location on the
fly anyway.

This passes all current regression tests.
2003-05-02 22:46:13 +00:00
phk
3f52da0d28 Pull in bcopy() prototype from <string.h> when compiled in userland. 2003-05-02 19:53:55 +00:00
phk
d73072efd4 Considering that I did cast the arguments to (intmax_t) I must have
been sleepy since I used %qd instead of %jd.
2003-05-02 19:08:57 +00:00
phk
5ffbb6f148 Style improvement. 2003-05-02 12:57:40 +00:00
phk
3708ab2594 Use g_wither_geom() and plug memory leaks. 2003-05-02 12:52:51 +00:00
phk
637729fea0 Plug memory leaks. 2003-05-02 12:49:41 +00:00
phk
26f669a3c9 Use an uma-zone for allocation bio requests. 2003-05-02 12:36:12 +00:00
phk
94c69d48c9 Use g_slice_spoiled() instead of g_std_spoiled().
Add XXX comment about minor memory leak until I can fix it.
2003-05-02 08:33:26 +00:00
phk
7636503a41 Use g_slice_spoiled() instead of g_std_spoiled(). 2003-05-02 08:21:02 +00:00
phk
d2b42c6620 Use g_slice_spoiled().
Free buffer from g_read_data().
2003-05-02 08:13:03 +00:00
phk
055cf65eb1 Back out all the stuff that didn't belong in the last commit. 2003-05-02 06:42:59 +00:00
phk
4c52a206d2 Use g_slice_spoiled() rather than g_std_spoiled().
Remember to free the buffer we got from g_read_data().
2003-05-02 06:36:14 +00:00
phk
6b0e95eef5 Use g_slice_spoiled() not g_std_spoiled() 2003-05-02 06:34:51 +00:00
phk
0a7a0e5019 Use g_slice_spoiled() rather than g_std_spoiled() 2003-05-02 06:33:59 +00:00
phk
077126a4be Use g_slice_spoiled() rather than g_std_spoiled(). 2003-05-02 06:33:26 +00:00
phk
4ac5216f83 Use a more tailored spoil routine for slices, and take advantage of
g_wither_geom() to do most of the work for us.
2003-05-02 06:29:33 +00:00
phk
dfdb8ebb84 Style improvement. 2003-05-02 06:22:48 +00:00
phk
e39be99d04 Use g_wither_geom() for cleanup. 2003-05-02 06:22:32 +00:00
phk
098143e63b Rework the "withering" mechanism:
Introduce g_wither_geom() to do the work in one single place.
2003-05-02 06:15:27 +00:00
phk
cb4841eb7e Rename g_slice_init() to the more appropriate g_slice_alloc() and give
it a g_slice_free() partner function.
2003-05-02 05:33:27 +00:00
phk
47865226a5 style improvement. 2003-05-02 05:26:47 +00:00
phk
a49f8acd23 Get rid of trivial function g_destroy_event(). 2003-05-02 05:26:19 +00:00
phk
ea4d816aa1 Plug some memory-leaks. 2003-05-01 21:07:08 +00:00
phk
c51ae09b82 Remove the now obsolete geomidorname hack. 2003-05-01 20:32:24 +00:00
phk
26e81abf93 Add a new flag, EV_CANCELED, and use it to make g_waitfor_event() return
EAGAIN if an event got canceled.
2003-05-01 19:43:52 +00:00
phk
2ae9241429 When events on a reference is cancelled, check our doorstep first,
it might be an orphan.
2003-05-01 19:24:00 +00:00
phk
def0071c3d Remove now unneeded special case for "geom.ctl". 2003-05-01 18:18:14 +00:00
nyan
0ecbcb89a3 Remove DIOCGPC98 ioctl. 2003-05-01 14:40:16 +00:00
nyan
313e553205 - Move decoding pc98_partition function into geom_pc98_enc.c.
- Add encoding pc98_partition function.
2003-05-01 13:44:24 +00:00
marcel
d39162a421 Don't emulate a MBR by handling the MBR::type attribute. It is
not needed at all. The BSD class will attach to a GPT class without
it.
2003-05-01 01:51:28 +00:00
markm
6cc289554b Fix some easy, global, lint warnings. In most cases, this means
making some local variables static. In a couple of cases, this means
removing an unused variable.
2003-04-30 12:57:40 +00:00
phk
a43e2a0d8e Fix an obscure fencepost error in GBDE's sector mapping code:
For certain combinations of sectorsize, mediasize and random numbers
(used to define the mapping), a multisector read or write would ignore
some subset of the sectors past the first sector in the request because
those sectors would be mapped past the end of the parent device, and
normal "end of media" truncation would zap that part of the request.

Rev 1.19+1.20 of g_bde_work.c added the check which should have alerted
me to this happening.  This commit maps the request correctly and
adds KASSERTS to make sure things stay inside the parent device.

This does not change the on-disk layout of GBDE, there is no need to
backup/restore.
2003-04-29 19:46:42 +00:00
phk
df12452858 Typo in last commit: Do not press xZZ to leave vi(1). 2003-04-29 19:38:55 +00:00
phk
46e72efe59 When a bio comes back from below with a zero error code, check that
it wrote the full length.  The only case where this should be able
to happen is if we try to read/write past the end and the request
is truncated.  We obviously should never try to do that, so this
code should never activate.
2003-04-29 19:37:36 +00:00
kan
9468fdaf14 Deprecate machine/limits.h in favor of new sys/limits.h.
Change all in-tree consumers to include <sys/limits.h>

Discussed on:	standards@
Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
2003-04-29 13:36:06 +00:00
phk
647f79f459 I accidentally leaked this debugging tool in with my last commit.
Disable it with a direct warning.
2003-04-28 17:57:12 +00:00