Age | Commit message (Collapse) | Author |
|
tail pointer must be updated; from FreeBSD (mckusick).
Appears to fix problems I was seeing with processes stuck with
WCHAN=inode in rev 1.50. OK pedro@ and tedu@.
|
|
to free the lock twice. Doesn't actually make any difference for
us (no .o file diff) since the code block that contains the continue
is currently commented out but it makes sense to fix this now so
if/when that code is enabled we don't get bitten. From FreeBSD, ok pedro@.
|
|
prev softdep merge could lead to inode wait deadlock for unknown reasons.
revert.
|
|
revert.
|
|
'looks fine' millert@, krw@. ok jmc@
|
|
|
|
ok marius@ tedu@
|
|
|
|
superblock; make the block size check also catch negative values.
ok miller@ tedu@
|
|
|
|
use mode_t in syscalls.master and to use mode_t in more places in
the kernel. It also makes lint much more useful on kernel code.
I've also added a placeholder for st_birthtime to make a UFS2 import
easier at some future date.
Requested by and OK deraadt@
|
|
|
|
encapsulating all such access into wall-defined functions
that makes sure locking is done as needed.
It also cleans up some uses of wall time vs. uptime some
places, but there is sure to be more of these needed as
well, particularily in MD code. Also, many current calls
to microtime() should probably be changed to getmicrotime(),
or to the {,get}microuptime() versions.
ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others
"Oh, that is not your problem!" from miod@
|
|
things such that code that only need a second-resolution uptime or wall
time, and used to get that from time.tv_secs or mono_time.tv_secs now get
this from separate time_t globals time_second and time_uptime.
ok art@ niklas@ nordin@
|
|
|
|
relevant changes to ffs_softdep.c were 1.95, 1.96, 1.97, 1.98, 1.103, and
1.107 in freebsd. testing marc and otto. ok deraadt
|
|
in the host fs.
|
|
problem found, fix tested naddy@
|
|
|
|
|
|
|
|
|
|
millert@, beck@, tedu@, deraadt@ ok
|
|
mpech@ and tedu@ ok
|
|
now call the poll backend. With this change we implement greater
poll(2) functionality instead of emulating it via the select backend.
Adapted from NetBSD and including some changes from FreeBSD.
Tested by many, deraadt@ OK
|
|
|
|
way for some future work. no function changes yet.
few other little cleanups.
help testing otto@ and markus@
|
|
|
|
|
|
from Peter Galbavy
|
|
|
|
o document EROFS in man page (2 possible causes)
o recognize EROFS in mount_ffs and try to give a reasonable error message
deraadt@ OK
|
|
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
ufs1_daddr_t, a few to daddr_t. ufs_daddr_t typedef is retained, but consider
it deprecated. no functional changes. inspired by freebsd. ok art@
|
|
|
|
The inheritace is implemented by setting the default vnodeop to a
bypass op that repeats the operation on the spec/fifo vnodeop vector.
The overhead of one extra indirect function call is worth the cleanup
and improved correctness.
This actually solves a few bugs where some vnode ops were missing from
some vectors (like kqfilter or revoke). (and even more on the ubc
branch).
Inspired by the same thing done in FreeBSD.
|
|
Diff generated by Chris Kuethe.
|
|
files up to 16TB, we do limit the max file to 2^31 pages to prevent
overflow of a 32-bit unsigned int. The buffer cache has its own
checks but a little added paranoia never hurts. Adapted from a patch
in FreeBSD.
|
|
Fix two problems with softdep_typenames (missing entry, wrong boundary check);
wiz@netbsd.org
art@ OK
|
|
to get shared locks for lookup and get the exclusive lock only with
LK_DRAIN on unmount and do the real exclusive locking with flags in
mnt_flags, we now use shared locks for lookup and an exclusive lock for
unmount.
This is accomplished by slightly changing the semantics of vfs_busy.
Old vfs_busy behavior:
- with LK_NOWAIT set in flags, a shared lock was obtained if the
mountpoint wasn't being unmounted, otherwise we just returned an error.
- with no flags, a shared lock was obtained if the mountpoint was being
unmounted, otherwise we slept until the unmount was done and returned
an error.
LK_NOWAIT was used for sync(2) and some statistics code where it isn't really
critical that we get the correct results.
0 was used in fchdir and lookup where it's critical that we get the right
directory vnode for the filesystem root.
After this change vfs_busy keeps the same behavior for no flags and LK_NOWAIT.
But if some other flags are passed into it, they are passed directly
into lockmgr (actually LK_SLEEPFAIL is always added to those flags because
if we sleep for the lock, that means someone was holding the exclusive lock
and the exclusive lock is only held when the filesystem is being unmounted.
More changes:
dounmount must now be called with the exclusive lock held. (before this
the caller was supposed to hold the vfs_busy lock, but that wasn't always
true).
Zap some (now) unused mount flags.
And the highlight of this change:
Add some vfs_busy calls to match some vfs_unbusy calls, especially in
sys_mount. (lockmgr doesn't detect the case where we release a lock noone
holds (it will do that soon)).
If you've seen hangs on reboot with mfs this should solve it (I repeat this
for the fourth time now, but this time I spent two months fixing and
redesigning this and reading the code so this time I must have gotten
this right).
|
|
|
|
was introduced, but now it causes crashes when kernels are built
without DIAGNOSTIC. Instead of trying to debug this incorrect code,
I'm just removing this abomination.
|
|
|
|
Synch files that use that field.
(This argument is an internal interface specific to OpenBSD, so it won't
cause compatibility problems.)
(No bump, not an ABI change).
ok art, millert...
|
|
|
|
|
|
|
|
|
|
|
|
|