Age | Commit message (Collapse) | Author |
|
only using ino_t in the VFS layer APIs: vget, readdir, getattr.
otto wrote the original diff for libsa to keep bootblock from overflowing
ok deraadt@ kettenis@
|
|
|
|
each cylinder group, which should speed up disk access a little and fsck
substantially. adapted from freebsd.
for more info: www.mckusick.com/publications/faster_fsck.pdf
ok deraadt
|
|
from freebsd. ok deraadt guenther otto
|
|
the special provided when the mount was requested. This may be the same as
the special that was actually used for the mount (e.g. in the case of a
device node) or it may be different (e.g. in the case of a DUID).
Whilst here, change f_ctime to a 64 bit type and remove the pointless
f_spare members.
Compatibility goo courtesy of guenther@
ok krw@ millert@
|
|
over the entire pagedep and inodedep hash tables due to an off-by-one
mistake in loops. Spotted by and diff from Pedro Martelletto. Sent
upstream to Kirk and also fixed in FreeBSD.
ok otto@ millert@
|
|
msdos, NFS, fifos and devices, plus support for querying it in
getconf(2) and the requisite pathconf(2) manpage blurb
ok tedu@
|
|
_PC_PRIO_IO, and _PC_SYNC_IO names in VOP_PATHCONF(), as they're
fs-independent for us. Since we don't support latter three on any
fs, we can also define the related _POSIX_{ASYNC,PRIO,SYNC}_IO
symbols in <unistd.h> (via sys/unistd.h) with value -1.
Also, zap pointless tty-only values from procfs(!).
ok beck@, deraadt@
|
|
in MI code; gcc 2.95 does not accept such annotation for function pointer
declarations, only function prototypes.
To be uncommented once gcc 2.95 bites the dust.
|
|
function pointer arguments which are {used as,} wrappers around the kernel
printf function.
No functional change.
|
|
the problem of the cleaner not being able to get softdep out of trouble
due to the removal of a reserve back in vienna. Been run by me for a long
time and beat up, along with a bunch of others. Hopefully this nasty piece
of workaround can stay out for good now.
ok guenther@
|
|
free and uses FIFO queueing (rather than the current LIFO queueing).
Tested by sthen@
ok beck@ krw@
|
|
behind.
ok jsing@
|
|
Softdep uses it's own "getdirtybuf" which has (always) potentially
slept - this wasn't noticable when buffers were static and never freed,
however now that the bufs it was trying to busy is might have been
written out and freed by someone else we can see use-after free if we
fast-recycle buffers. We fix this by either re-trying operations
or ensuring we don't use the buf pointer after waiting.
ok guenther@ (in coimbra)
|
|
ok guenther millert kettenis
|
|
|
|
- Avoid using copyinstr() without checking the return value.
- sys_mount() has already copied the path in, so pass this to the
filesystem mount code so that it does not have to copy it in again.
- Avoid copyinstr()/bzero() dance when we can simply bzero() and strlcpy().
ok krw@
|
|
less greedy pools are nicer pools.
|
|
rlimit, then a write that would take it over the limit should be
clamped, making it a partial write.
ok beck@
|
|
to diff against FreeBSD's.
From Brad; no object file change on amd64.
|
|
From FreeBSD via Brad; ok millert
|
|
when b_error has not already been set to something more informative,
e.g. EROFS.
DO check the result of ffs_sbupdate() and error out of a mount()
call when ffs_sbupdate() reports EROFS while attempting a rw mount.
Letting RW mounts proceed regardless of EROFS led to crashes and
usb problems for Oliver Seufer while using the RW/RO switches on
some usb devices. Fix developed using devices kindly supplied by
Oliver & Co.
ok miod@
|
|
of per-rthread. Handling of per-thread tick and runtime counters
inspired by how FreeBSD does it.
ok kettenis@
|
|
ok miod
|
|
ok deraadt@
|
|
softdeps almost totally unusable;
|
|
limit is reached.
Added twist, clamp the max_softdeps to 64 as it is still
possible to exhaust bufkva.
|
|
The basic analysys is correct, however, the problem in this case is that by forcing
softdept to synchornously flush everything across *all* softdep filesystems we cause a
huge performance problem when we take a 3 second pause and slam everything synchronously.
the right way to fix this is to fix the speedup_softdep code, not make the filesystem
go synchronous when we hit a limit - if we are doing that we may as well not run softdep
it will be faster.
ok deraadt@
|
|
|
|
|
|
|
|
bread() always
takes DEV_BSIZE address units so don't bother getting the disklabel and trying to
convert units to d_secsize. Nukes last references to d_secsize in ufs/.
ok tedu@
|
|
|
|
the obvious cases to return EINVAL and ENXIO.
ok tedu deraadt
|
|
re-initialized before use is silly. ffs shouldn't know of or worry about the
physical disk sector size.
ok thib@
|
|
prompted by tedu@
|
|
Initial diff from and tested by Luca Corti - thanks!
|
|
|
|
|
|
when softdep runs out, since it does not use it. In the nfsiod case, that
ucred is pointless, and ffs_fsync does not use it in any case.
This does not conflict with thib's plans moving forward
ok thib
|
|
thus possibly consuming all of our available kva mapping buffers for
deps. Diff and analysis actually comes from Pedro Martelleto (thanks!)
tested by me and thib
ok thib@, art@
|
|
and return EOPNOTSUPP directly from the VOP_* functions.
Filesystems should, at some point fill in every function
in the vop_default struct so we can get rid of the 'if'
statements in VOP_*.
|
|
|
|
unrelated, and his alpha is much happier now.
OK deraadt@
|
|
(in case eventually we change their type from u_long to something else),
and do not truncate them to 32 bits in the ntfs code.
ok tedu@
|
|
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@.
|
|
/* something */
if (error) {
VOP_UNLOCK();
return;
}
VOP_UNLOCK();
to the clearer and shorter:
VOP_UNLOCK();
if (error)
return;
ok thib@, jsing@ as part of a larger diff.
|
|
have been resolved.
|
|
OK oga@, beck@, matthew@
|
|
vector setup that has questionable features (that have, as far as I can
tell never been used in practice, atleast not in OpenBSD), remove all
the gunk and favor a simple struct full of function pointers that get
set directly by each of the filesystems.
Removes gobs of ugly code and makes things simpler by a magnitude.
The only downside of this is that we loose the vnoperate feature so
the spec/fifo operations of the filesystems need to be kept in sync
with specfs and fifofs, this is no big deal as the API it self is pretty
static.
Many thanks to armani@ who pulled an earlier version of this diff to
current after c2k10 and Gabriel Kihlman on tech@ for testing.
Liked by many. "come on, find your balls" deraadt@.
|