| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
ok deraadt@ marco@ krw@
|
|
|
|
|
| |
what the previous IO was. Less chance of copy and paste errors.
Suggested by miod@.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are past. Use CLR() and SET() to modify necessary flags while leaving
the flags used by the buffer cache in peace.
Should make bufcache code much less confused about the state of the
bufs used in reading/writing disklabels. Other such flag abuses no
doubt await a visit.
Errors in original diff found by miod@.
ok beck@ deraadt@
|
|
|
|
| |
Spotted by deraadt@.
|
|
|
|
| |
sushi level.
|
|
|
|
|
| |
EBRs to follow looking for the OpenBSD partition. Just stop spoofing
if necessary.
|
|
|
|
|
|
| |
the disklabel UID may have changed.
ok krw@ deraadt@
|
|
|
|
| |
ok krw@ deraadt@
|
|
|
|
|
|
|
|
| |
In disk_readlabel() if the ioctl fails don't forget to close the disk.
Avoid sharing a static error buffer between a workq and mountroot since
they can compete. Pass the dev_t to the workq inside one of the arguments
without a malloc'd object.
ok miod dlg krw
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
curproc. A bunch of callers were passing in 0 (not even NULL, 0) as this
pointer, which was fine until the called vnode function tried to do
something with it. Typically, this code was then copy/pasted to various
parts of the tree.
Accept the facts of life and switch all of these over to passing curproc
for now until the argument can be removed.
Discovered by stsp trying to create a softraid on top of a vnd, which
crashed with a NULL deref in vndioctl.
softraid bits tested by mikeb and jsing. raidframe bits tested by pea,
matthieu and naddy. The rest tested by at least thib, jsing and myself.
ok thib@, jsing@.
|
|
|
|
|
|
|
| |
providing the DKF_NOLABELREAD flag is not set. This provides the kernel
with the actual disklabel which includes the disklabel UID.
ok deraadt@ miod@ krw@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
verifying that the resulting device is present on the disklist. This
avoids a race whereby the disk driver can be accessed as soon as the
softc has been allocated, but before the disk has completed
initialisation and has called disk_attach() (up until this point
dk_label is still a null pointer).
Cut cd(4), sd(4) and wd(4) across to disk_lookup(). All callers of
disk_attach() need to be tested and cut over in due course.
ok deraadt@ krw@
|
|
|
|
|
|
|
| |
disk_attach() is called by the device driver. We will be building on
this shortly.
ok deraadt@ krw@
|
|
|
|
| |
root off), return NULL instead.
|
|
|
|
|
|
| |
here also expose disklist for future use.
ok deraadt@ miod@
|
|
|
|
| |
ok jsing@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
| |
actual device. If successful, the real path is returned via mappath. Soon
to be used by several other diffs.
ok krw@
|
|
|
|
|
|
| |
already have one.
ok krw@
|
|
|
|
|
|
|
| |
to pad-align the size of the structure; it grows, the disklabel ioctl's are
break ABI. Change the uid to a character array. this also simplifies some
other stuff
ok jsing
|
|
|
|
|
|
|
| |
identifier, allowing the disk to be identified without relying on the
device name.
ok deraadt@ krw@ beck@ marco@ todd@
|
|
|
|
|
| |
from Brad Tilley <brad at 16systems dot com>;
ok oga@
|
|
|
|
|
|
| |
invalid offsets and sizes: reject the i/o.
ok deraadt@ beck@
|
|
|
|
|
|
|
|
|
| |
errnos. Note that the error strings are being ignored, since we long ago
decided to not spam the console, and there is no other nice way to use the
errors (without changing the ioctls to pass it back)
The errno is now useful, since we can pass b_error from failing IO up, and
the drive can decide how to use that
ok miod
|
|
|
|
|
|
| |
things to softraid.
ok jsing thib krw beck oga
|
|
|
|
|
|
| |
have been going on. this appears to bring us back to stable state.
lots of testing by oga and ariane and my self.
|
|
|
|
|
|
| |
indicates that writedisklabel is trying to find the location for writing
the label. If the lp is messed with, an invalid checksum is written.
done with miod and kettenis, lots of moaning and gnashing of teeth, etc
|
|
|
|
| |
still do the right thing if the MBR has a lie in it
|
|
|
|
|
|
|
|
|
|
|
|
| |
bounds information, ie. the zone of the disk that OpenBSD can use. Have each
pre-disklabel parser (MBR, DPME, or per-arch MD disklabel parsers) figure out
this area and pass it up to userland. Then, delete all the same disk parsing
code from disklabel(8) since the kernel passes it up. Lots and lots of - signs
in the disklabel(8) code.
Tested on as many platforms as possible, the fallout will be repaired as time
goes on. To test, use disklabel -d <drive> and validate that the bounds do not
overlap any boot blocks. This same information is used by disklabel -A...
OK for the concept from krw, miod, and drahn
|
|
|
|
|
|
|
|
|
| |
one by tedu@. It doesn't do anything smart yet, it just uses
plain old disksort. we also keep the old method of queueing bufs
since some miods have crazy MD drivers that need some love.
ok beck@, art@
tested by many on many archs.
|
|
|
|
|
|
| |
be murdered and theo will visit with a 2x4.
ok deraadt
|
|
|
|
|
| |
ok oga@
'dance for me' blambert@
|
|
|
|
|
|
| |
not read garbage values as partitions... which we then put into the spoofed
label... and which would lead disklabel -A to make surprising decisions.
earlier versions which did too much validation tested by many
|
| |
|
|
|
|
|
|
|
|
|
| |
should not stop the spoofing process. Setting 'wander' means when
we are done with this MBR, read the next one.
Problem noted and fix tested by Nick Guenther.
ok weingart@ (I think), deraadt@
|
|
|
|
|
|
|
| |
on the disk lock we can find that code rather than wondering where "sd0"
gets passed to tsleep.
ok deraadt@
|
|
|
|
| |
on; prompted by Thorsten Glaser; ok miod@ krw@
|
|
|
|
|
|
|
|
|
|
|
| |
three-byte jmp will be acceptable as the preamble to a FAT boot
sector for the purposes of spoofing an 'i' partition. Problem noted
most recently by mbalmer@.
Fixes mbalmer@, fkr@ and jmc@'s Nokia E71 phones.
"seems silly" tedu@ "disgusting" deraadt@ "makes sense" fkr@
ok jmc@ "looks ok" weingart@
|
|
|
|
|
|
|
|
| |
correct address to write the passed label. Don't spoof partitions
while looking for the address, as this could result in an invalid
label being written out.
"That looks right" deraadt@ "Looks good to me" miod@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
512) bytes; ffs is inextricably tied to using b_blkno and disklabel
always uses sectorsize units.
Thus use DEV_BSIZE units for all fields describing ffs filesystems
and convert to/from sectors where required. This enables the creation
and use of ffs filesystems on non-512 byte sectorsize devices.
This diff allows i386 and sgi (the two test platforms) to find
disklabels that are not on a sectorsize boundary. Same change to
further archs coming.
This is a no-op on 512-byte sectorsize devices.
This work triggered by jsing@'s need to create ffs filesystems on
sgi cdroms so we can create cdrom install media for sgi.
sgi testing by jsing@
ok jsing@ pedro@ "looks sane" beck@ weingart@
|
|
|
|
|
|
|
|
|
|
|
|
| |
extended DOS partition. the concept of extended partitions is very
simple, it is just another mbr at the partition offset (well, the
standard "EBR" is a linked list with a few limitations, but this diff
works with both variants).
this diff has been in the snapshots for a while.
with input from weingart@ and krw@
ok deraadt@
|
|
|
|
| |
ok thib beck art
|
|
|
|
|
|
|
|
| |
file copies to nfsv2 causes the system to eventually peg the console.
On the console ^T indicates that the load is increasing rapidly, ddb
indicates many calls to getbuf, there is some very slow nfs traffic
making none (or extremely slow) progress. Eventually some machines
seize up entirely.
|
|
|
|
|
|
|
|
| |
biowait() reads that do *not* come from the buffer cache - we use the
B_RAW flag to identify these at art's suggestion - since it makes sense
and the flag was not being used. this just flags all these buffers with
B_RAW - biodone already ignores returned buffers marked B_RAW.
ok art@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) remove multiple size queues, introduced as a stopgap.
2) decouple pages containing data from their mappings
3) only keep buffers mapped when they actually have to be mapped
(right now, this is when buffers are B_BUSY)
4) New functions to make a buffer busy, and release the busy flag
(buf_acquire and buf_release)
5) Move high/low water marks and statistics counters into a structure
6) Add a sysctl to retrieve buffer cache statistics
Tested in several variants and beat upon by bob and art for a year. run
accidentally on henning's nfs server for a few months...
ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
|
|
|
|
|
|
|
|
|
|
|
| |
'fakerootdev' hackery. This allows us to bring back miod@'s r1.70 subr_disk.c
change to avoid the GENERIC dance when rootdev has been initialized. This
in turn re-enables raidframe root devices.
Add a nice panic if rootdev can't be initialized, displaying the name of the
device that didn't work rather than just blowing up by de-referencing NULL.
ok deraadt@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
|
|
| |
the basic idea is that ramdisks boot the same way as swap generic -- this
commit also improves the comment in that area. in this case the one
outlier is raidframe, and those who use it will no longer be able to
put off repairing it -- raidframe must follow the same setroot() / bootdv
API that everything else in the system uses.
debugged with krw
|
|
|
|
|
|
|
| |
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck
|