#
29363fb4 |
|
23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags. Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script. Sponsored by: Netflix
|
#
031beb4e |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line sh pattern Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
750a49b6 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
vnode_if: Don't add $FreeBSD$ to the output Sponsored by: Netflix
|
#
5f6df177 |
|
03-Nov-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: validate that vop vectors provide all or none fplookup vops In order to prevent later susprises.
|
#
5a4a83fd |
|
16-Jan-2023 |
Jason A. Harmening <jah@FreeBSD.org> |
Improve debuggability of VOP_* locking assertions Include the phase and argument field to make it easier to determine at a glance where the failure originated. Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D38091
|
#
848f8eff |
|
30-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: inline vops if there are no pre/post associated calls This removes a level of indirection from frequently used methods, most notably VOP_LOCK1 and VOP_UNLOCK1. Tested by: pho
|
#
8a6f5fd5 |
|
25-Jan-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: stop null checking routines in vop wrappers Calls to vop_bypass pass the same argument, but type casted to something else. Thus by replacing NULL routines with vop_bypass we avoid a runtime check. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23357
|
#
61f67f32 |
|
15-Dec-2019 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: allow tail call optimisation in vops in the common case Most frequently used vops boil down to checking SDT probes, doing the call and checking again. There is no vop_post/pre in their case but the check after the call prevents tail call optimisation from taking place. Instead, check once upfront. Kernels with debug or vops with non-empty vop_post still don't short circuit. Reviewed by: kib Tested by: pho Differential Revision: https://reviews.freebsd.org/D22739
|
#
6fa079fc |
|
15-Dec-2019 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: flatten vop vectors This eliminates the following loop from all VOP calls: while(vop != NULL && \ vop->vop_spare2 == NULL && vop->vop_bypass == NULL) vop = vop->vop_default; Reviewed by: jeff Tesetd by: pho Differential Revision: https://reviews.freebsd.org/D22738
|
#
52bcb118 |
|
08-May-2019 |
Ed Maste <emaste@FreeBSD.org> |
Avoid literal @generated tag in file-generating scripts We don't want the generator itself tagged as a generated file. Reviewed by: cem Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D20182
|
#
6e0e532a |
|
07-May-2019 |
Ed Maste <emaste@FreeBSD.org> |
Use @generated tag in generated files Multiple tools use @generated to identify generated files (for example, in a review Phabricator will by default hide diffs in generated files). Use the @generated tag in makeobjops.awk and vnode_if.awk as we've done for other generated files. Sponsored by: The FreeBSD Foundation
|
#
8ff7fad1 |
|
23-Oct-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Only call sigdeferstop() for NFS. Use bypass to catch any NFS VOP dispatch and route it through the wrapper which does sigdeferstop() and then dispatches original VOP. NFS does not need a bypass below it, which is not supported. The vop offset in the vop_vector is added since otherwise it is impossible to get vop_op_t from the internal table, and I did not wanted to create the layered fs only to wrap NFS VOPs. VFS_OP()s wrap is straightforward. Requested and reviewed by: mjg (previous version) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D17658
|
#
51369649 |
|
20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
|
#
fbbd9655 |
|
28-Feb-2017 |
Warner Losh <imp@FreeBSD.org> |
Renumber copyright clause 4 Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point. Submitted by: Jan Schaumann <jschauma@stevens.edu> Pull Request: https://github.com/freebsd/freebsd/pull/96
|
#
2f2f522b |
|
27-Sep-2015 |
Andriy Gapon <avg@FreeBSD.org> |
save some bytes by using more concise SDT_PROBE<n> instead of SDT_PROBE SDT_PROBE requires 5 parameters whereas SDT_PROBE<n> requires n parameters where n is typically smaller than 5. Perhaps SDT_PROBE should be made a private implementation detail. MFC after: 20 days
|
#
d9fae5ab |
|
26-Nov-2013 |
Andriy Gapon <avg@FreeBSD.org> |
dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE In its stead use the Solaris / illumos approach of emulating '-' (dash) in probe names with '__' (two consecutive underscores). Reviewed by: markj MFC after: 3 weeks
|
#
54366c0b |
|
25-Nov-2013 |
Attilio Rao <attilio@FreeBSD.org> |
- For kernel compiled only with KDTRACE_HOOKS and not any lock debugging option, unbreak the lock tracing release semantic by embedding calls to LOCKSTAT_PROFILE_RELEASE_LOCK() direclty in the inlined version of the releasing functions for mutex, rwlock and sxlock. Failing to do so skips the lockstat_probe_func invokation for unlocking. - As part of the LOCKSTAT support is inlined in mutex operation, for kernel compiled without lock debugging options, potentially every consumer must be compiled including opt_kdtrace.h. Fix this by moving KDTRACE_HOOKS into opt_global.h and remove the dependency by opt_kdtrace.h for all files, as now only KDTRACE_FRAMES is linked there and it is only used as a compile-time stub [0]. [0] immediately shows some new bug as DTRACE-derived support for debug in sfxge is broken and it was never really tested. As it was not including correctly opt_kdtrace.h before it was never enabled so it was kept broken for a while. Fix this by using a protection stub, leaving sfxge driver authors the responsibility for fixing it appropriately [1]. Sponsored by: EMC / Isilon storage division Discussed with: rstone [0] Reported by: rstone [1] Discussed with: philip
|
#
593efaf9 |
|
21-Feb-2013 |
John Baldwin <jhb@FreeBSD.org> |
Further refine the handling of stop signals in the NFS client. The changes in r246417 were incomplete as they did not add explicit calls to sigdeferstop() around all the places that previously passed SBDRY to _sleep(). In addition, nfs_getcacheblk() could trigger a write RPC from getblk() resulting in sigdeferstop() recursing. Rather than manually deferring stop signals in specific places, change the VFS_*() and VOP_*() methods to defer stop signals for filesystems which request this behavior via a new VFCF_SBDRY flag. Note that this has to be a VFC flag rather than a MNTK flag so that it works properly with VFS_MOUNT() when the mount is not yet fully constructed. For now, only the NFS clients are set this new flag in VFS_SET(). A few other related changes: - Add an assertion to ensure that TDF_SBDRY doesn't leak to userland. - When a lookup request uses VOP_READLINK() to follow a symlink, mark the request as being on behalf of the thread performing the lookup (cnp_thread) rather than using a NULL thread pointer. This causes NFS to properly handle signals during this VOP on an interruptible mount. PR: kern/176179 Reported by: Russell Cattelan (sigdeferstop() recursion) Reviewed by: kib MFC after: 1 month
|
#
7fc3ae51 |
|
27-Dec-2012 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Fix build on ARM (and probably other platforms)
|
#
4c44811c |
|
19-Dec-2012 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add new machine parsable KTR macros for timing events. - Use this new format to automatically handle syscalls and VOPs. This changes the earlier format but is still human readable. Sponsored by: EMC / Isilon Storage Division
|
#
f62f6c88 |
|
21-Feb-2012 |
Mikolaj Golub <trociny@FreeBSD.org> |
Make vnode_if.awk parse vnode operations with underscores, like VOP_FOO_BAR. Reviewed by: kib MFC after: 1 week
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
79856499 |
|
22-Aug-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
Add an extra comment to the SDT probes definition. This allows us to get use '-' in probe names, matching the probe names in Solaris.[1] Add userland SDT probes definitions to sys/sdt.h. Sponsored by: The FreeBSD Foundation Discussed with: rwaston [1]
|
#
ff8a07fd |
|
28-Mar-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Add SDT DTrace probes for VFS vnode operations in the vfs:vop provider namespace. These are inserted dynamically into the VOP_..._AP() functions created from vnode_if.src. Each VOP has entry and return probes, as arg0 the primary vnode, arg1 the vnode operation argument structure pointer, providing access to IN and OUT arguments, and for return probes, arg2 the return value. MFC after: 1 month Sponsored by: Google, Inc.
|
#
c439bdd8 |
|
03-Nov-2008 |
John Baldwin <jhb@FreeBSD.org> |
Remove some unused and broken code that attempted to not invoke locking asserts on NULL vnode pointers. All the vnode assertion routines already check for NULL vnode pointers.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
44d6e87b |
|
30-May-2006 |
Diomidis Spinellis <dds@FreeBSD.org> |
- Add two checks for syntax errors - Improve error reporting - Remove redundant conditionals
|
#
f69ec7af |
|
30-May-2006 |
Diomidis Spinellis <dds@FreeBSD.org> |
Assertion code specifications are introduced using special character sequences that are distinct from comments. %% is used for argument locks; %! for pre- and post-conditions.
|
#
3cd62520 |
|
26-May-2006 |
Diomidis Spinellis <dds@FreeBSD.org> |
Update usage comment to match reality.
|
#
0430a5e2 |
|
13-Dec-2005 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Eradicate caddr_t from the VFS API.
|
#
e26b05cf |
|
13-Dec-2005 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Nuke vnodeop_desc.vdesc_transports, which has been unused since the dawn of time (or the inception of ncvs, whichever came last)
|
#
679985d0 |
|
09-Jun-2005 |
Suleiman Souhlal <ssouhlal@FreeBSD.org> |
Allow EVFILT_VNODE events to work on every filesystem type, not just UFS by: - Making the pre and post hooks for the VOP functions work even when DEBUG_VFS_LOCKS is not defined. - Moving the KNOTE activations into the corresponding VOP hooks. - Creating a MNTK_NOKNOTE flag for the mnt_kern_flag field of struct mount that permits filesystems to disable the new behavior. - Creating a default VOP_KQFILTER function: vfs_kqfilter() My benchmarks have not revealed any performance degradation. Reviewed by: jeff, bde Approved by: rwatson, jmg (kqueue changes), grehan (mentor)
|
#
680a1ec6 |
|
11-Apr-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add the character "E" to the understood lock types. This means the VOP requires an exclusive lock. Sponsored by: Isilon Systems, Inc.
|
#
119798b3 |
|
07-Feb-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add VOP_FOO_APV() which takes a pointer to the vop_vector. This allows stacked or partitioned filesystems to say "Continue the normal resolution from here", for instace from FFS to UFS. Use VNASSERT() instead of KASSERT().
|
#
de8a6c06 |
|
13-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Get rid of the VDESC() macro while the pot is boiling anyway, it is only used from generate files now, so we might as well generate the right stuff from the start.
|
#
63f89abf |
|
13-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Change the generated VOP_ macro implementations to improve type checking and KASSERT coverage. After this check there is only one "nasty" cast in this code but there is a KASSERT to protect against the wrong argument structure behind that cast. Un-inlining the meat of VOP_FOO() saves 35kB of text segment on a typical kernel with no change in performance. We also now run the checking and tracing on VOP's which have been layered by nullfs, umapfs, deadfs or unionfs. Add new (non-inline) VOP_FOO_AP() functions which take a "struct foo_args" argument and does everything the VOP_FOO() macros used to do with checks and debugging code. Add KASSERT to VOP_FOO_AP() check for argument type being correct. Slim down VOP_FOO() inline functions to just stuff arguments into the struct foo_args and call VOP_FOO_AP(). Put function pointer to VOP_FOO_AP() into vop_foo_desc structure and make VCALL() use it instead of the current offsetoff() hack. Retire vcall() which implemented the offsetoff() Make deadfs and unionfs use VOP_FOO_AP() calls instead of VCALL(), we know which specific call we want already. Remove unneeded arguments to VCALL() in nullfs and umapfs bypass functions. Remove unused vdesc_offset and VOFFSET(). Generally improve style/readability of the generated code.
|
#
60727d8b |
|
06-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|
#
57c75b8f |
|
13-Dec-2004 |
Warner Losh <imp@FreeBSD.org> |
Rather than casting through a (void *) to avoid the aliasing warning, do things correctly from an aliasing perspective. Put the vop_generic_args element as the first element for all the vop_*_args and adjust the code to take the address of that instead of the structure. OK'd based on a vague description by: phk
|
#
98a67cd8 |
|
12-Dec-2004 |
Warner Losh <imp@FreeBSD.org> |
Cast from the specific vop_*_args to vop_generic_args via a (void *) pointer to eliminate the hundreds of warnings that we have in tree at the moment. # Chances are good that all the struct vop_*_args should have, as its # first element, the struct vop_generic_args, and when necessary to # reference it, we just take its address rather than going through # this double case.
|
#
aec0fb7b |
|
01-Dec-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Back when VOP_* was introduced, we did not have new-style struct initializations but we did have lofty goals and big ideals. Adjust to more contemporary circumstances and gain type checking. Replace the entire vop_t frobbing thing with properly typed structures. The only casualty is that we can not add a new VOP_ method with a loadable module. History has not given us reason to belive this would ever be feasible in the the first place. Eliminate in toto VOCALL(), vop_t, VNODEOP_SET() etc. Give coda correct prototypes and function definitions for all vop_()s. Generate a bit more data from the vnode_if.src file: a struct vop_vector and protype typedefs for all vop methods. Add a new vop_bypass() and make vop_default be a pointer to another struct vop_vector. Remove a lot of vfs_init since vop_vector is ready to use from the compiler. Cast various vop_mumble() to void * with uppercase name, for instance VOP_PANIC, VOP_NULL etc. Implement VCALL() by making vdesc_offset the offsetof() the relevant function pointer in vop_vector. This is disgusting but since the code is generated by a script comparatively safe. The alternative for nullfs etc. would be much worse. Fix up all vnode method vectors to remove casts so they become typesafe. (The bulk of this is generated by scripts)
|
#
be392b40 |
|
01-Dec-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
emit a "typedef vop_foo_t(struct vop_foo_args *);" which we can use to prototype VOP functions with.
|
#
82c6e879 |
|
06-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999. Approved by: core
|
#
7144b1d4 |
|
22-Jun-2003 |
Don Lewis <truckman@FreeBSD.org> |
Don't check the state of the vnode interlock if the specification says that the lock should not be checked. Skip the lock assertion checks for *vpp or any other pointer to a vnode pointer if vpp (or equivalent) is NULL.
|
#
86ed8962 |
|
19-Jun-2003 |
Stefan Eßer <se@FreeBSD.org> |
The assertions generated to test VFS locking never included checks for vnodes reached through double indirection (i.e. **vpp). This is worked-around by special-casing the identifier "vpp" (adding one level of indirection). The alternative fix mentioned in the PR had required substantial changes to this script. In case there are locking violations that had been hidden without this patch, they may suddenly show up, now ... This change does not affect code compiled without DEBUG_VFS_LOCKS. PR: kern/46652
|
#
6423c943 |
|
25-Sep-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Move ASSERT_VOP_*LOCK* functionality into functions in vfs_subr.c - Make the VI asserts more orthogonal to the rest of the asserts by using a new, common vfs_badlock() function and adding a 'str' arg. - Adjust generated ASSERTS to match the new prototype. - Adjust explicit ASSERTS to match the new prototype.
|
#
15597470 |
|
22-Sep-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Automatically generate and insert KTR points in all VOPs.
|
#
71ea4ba5 |
|
21-Aug-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add two new debugging macros: ASSERT_VI_LOCKED and ASSERT_VI_UNLOCKED - Use the new VI asserts in place of the old mtx_assert checks. - Add the VI asserts to the automated lock checking in the VOP calls. The interlock should not be held across vops with a few exceptions. - Add the vop_(un)lock_{pre,post} functions to assert that interlock is held when LK_INTERLOCK is set.
|
#
cf409a0a |
|
30-Jul-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Add automatic post vop debug checks. These work in both the success and failure cases.
|
#
5c08ffed |
|
07-Jul-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
- Use 'options DEBUG_VFS_LOCKS' instead of the DEBUG_ALL_VFS_LOCKS environment variable to enable the lock verifiction code.
|
#
d1376090 |
|
05-Jul-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
Add a new configuration directive that inserts calls to debugging functions in the VOP inlines. This is intended to replace the simple locking specifications for calls that have more complicated behavior such as rename and lookup. The syntax of the new entries is: #! name pre/post function If the function is marked 'pre' it is executed prior to calling the VOP and takes a pointer to a struct vop_{name}_args as it's only parameter. If the function is marked 'post' it is executed after the VOP call and takes a pointer to a struct vop_{name}_args as it's first parameter and the integer return value from the vop as the second paramter.
|
#
ef317162 |
|
03-May-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
include systm.h in vnode_if.c so that panic is defined when we're doing DEBUG_ALL_VFS_LOCKS.
|
#
fda3199f |
|
28-Feb-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
Return vnode_if back to its AWK roots. It became a Perl script in rev 1.20. This removes one more dependence on perl for the kernel build.
|
#
a262ae82 |
|
03-Jan-2002 |
Mike Silbersack <silby@FreeBSD.org> |
Throw the $FreeBSD$s back in, properly escaping them.
|
#
91ea78c5 |
|
03-Jan-2002 |
Mike Silbersack <silby@FreeBSD.org> |
Remove $FreeBSD$s from previous commit; perl thinks that they're something to be interpreted. Urk.
|
#
cd6fdcb9 |
|
03-Jan-2002 |
Mike Silbersack <silby@FreeBSD.org> |
Solve vnode_if.pl's identity crisis; make sure that it refers to itself as vnode_if.pl instead of vnode_if.sh. PR: 33509 MFC after: 3 weeks
|
#
b40ce416 |
|
12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
|
#
ec4dff5e |
|
23-Mar-2001 |
Alfred Perlstein <alfred@FreeBSD.org> |
replace calls to non-existant bail() subroutine with calls to the die() builtin function.
|
#
7ca7bbb3 |
|
05-Dec-2000 |
Peter Wemm <peter@FreeBSD.org> |
Simplify this a bit so that it doesn't have to generate silly redundant __P() prototypes when an ansi-style static inline is a prototype already. Since vnode_if.[ch] are generated on the fly, there are no CVS diffs to mess up.
|
#
35b1da80 |
|
27-Jun-2000 |
Alfred Perlstein <alfred@FreeBSD.org> |
remove crufty exec stuff, perl is in the base system make it work with warnings on (there was some harmless use of uninitialized variables) make it work with 'use strict' Approved by: peter
|
#
6f77b2de |
|
12-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
Use a seperate -c and -h mode. The vnode_if.c file is compiled only into the kernel while the vnode_if.h header is a bunch of inlines to call the code that is in the kernel. Generating the .h file on the fly is kinda bogus because it has to match the one compiled into the kernel. IMHO we should have kern/vnode_if.c and sys/vnode_if.h committed in the tree but that's another battle.
|
#
3176a7fe |
|
26-Sep-1999 |
Eivind Eklund <eivind@FreeBSD.org> |
Update this to be able to output ASSERT_VOP_(UN)LOCKED() based on the lock specifications in kern/vnode_if.src. At present, this do not distinguish between exclusive and shared locks, and the kernel is so full of bugs in this area that running with auto-generation of assertions enabled makes DEBUG_VFS_LOCKS totally useless for anybody that has used it for anything prior to outputting automated assertions. Due to this, I made vnode_if.sh only output locking assertions if you have the environment variable DEBUG_ALL_VFS_LOCKS set to "YES". In order to actually use the assertions, you need to also add "options DEBUG_VFS_LOCKS" to your kernel config file. Urged to commit by: phk
|
#
c3aac50f |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
f9c8cab5 |
|
16-Jun-1999 |
Kirk McKusick <mckusick@FreeBSD.org> |
Add a vnode argument to VOP_BWRITE to get rid of the last vnode operator special case. Delete special case code from vnode_if.sh, vnode_if.src, umap_vnops.c, and null_vnops.c.
|
#
4adbda97 |
|
28-Feb-1999 |
Bruce Evans <bde@FreeBSD.org> |
Declare static __inline functions as __inline in their forward declaration. Fixed some comments. Fixed a staticization botch.
|
#
4e61198e |
|
10-Nov-1998 |
Peter Wemm <peter@FreeBSD.org> |
Make the vnode opv vector construction fully dynamic. Previously we leaked memory on each unload and were limited to items referenced in the kernel copy of vnode_if.c. Now a kernel module is free to create it's own VOP_FOO() routines and the rest of the system will happily deal with it, including passthrough layers like union/umap/etc. Have VFS_SET() call a common vfs_modevent() handler rather than inline duplicating the common code all over the place. Have VNODEOP_SET() have the vnodeops removed at unload time (assuming a module) so that the vop_t ** vector is reclaimed. Slightly adjust the vop_t ** vectors so that calling slot 0 is a panic rather than a page fault. This could happen if VOP_something() was called without *any* handlers being present anywhere (including in vfs_default.c). slot 1 becomes the default vector for the vnodeop table. TODO: reclaim zones on unload (eg: nfs code)
|
#
fd5d1124 |
|
04-Jul-1998 |
Julian Elischer <julian@FreeBSD.org> |
VOP_STRATEGY grows an (struct vnode *) argument as the value in b_vp is often not really what you want. (and needs to be frobbed). more cleanups will follow this. Reviewed by: Bruce Evans <bde@freebsd.org>
|
#
214279ce |
|
19-Dec-1997 |
Bruce Evans <bde@FreeBSD.org> |
Use __inline instead of inline to prevent pedantic compiler warnings.
|
#
55b211e3 |
|
28-Oct-1997 |
Bruce Evans <bde@FreeBSD.org> |
Removed unused #includes.
|
#
bf1d104a |
|
10-Sep-1997 |
Poul-Henning Kamp <phk@FreeBSD.org> |
3 lines of code and updates to a number of comments. Reviewed by: phk Submitted by: Terry Lambert <tlambert@primenet.com>
|
#
6875d254 |
|
22-Feb-1997 |
Peter Wemm <peter@FreeBSD.org> |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
1130b656 |
|
14-Jan-1997 |
Jordan K. Hubbard <jkh@FreeBSD.org> |
Make the long-awaited change from $Id$ to $FreeBSD$ This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
f708ef1b |
|
14-Dec-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Another mega commit to staticize things.
|
#
40560c44 |
|
06-Dec-1995 |
Bruce Evans <bde@FreeBSD.org> |
Don't #include vm stuff in vnode_if.[ch]. Enough vm stuff (a single typedef) is now declared in <sys/types.h>. This is the first of 4 commits that will remove some excessive includes of vm*.h and user.h. The total speed improvement isn't as large as I first thought. `make depend; make' for LINT only improved from 2180 seconds to 2108 seconds user time.
|
#
a98ca469 |
|
29-Oct-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Second batch of cleanup changes. This time mostly making a lot of things static and some unused variables here and there.
|
#
5e3e8d2b |
|
11-Sep-1995 |
Bruce Evans <bde@FreeBSD.org> |
Generate prototypes for VOP functions. I decided to keep the old-style definitions even though the functions are inline. If vnode_if.h was compiled by a non-ANSI compiler, then `inline' would be defined away, so vnode_if.h might compile correctly.
|
#
c83ebe77 |
|
03-Sep-1995 |
John Dyson <dyson@FreeBSD.org> |
Added VOP_GETPAGES/VOP_PUTPAGES and also the "backwards" block count for VOP_BMAP. Updated affected filesystems...
|
#
47777413 |
|
01-Aug-1995 |
David Greenman <dg@FreeBSD.org> |
Removed my special-case hack for VOP_LINK and fixed the problem with the wrong vp's ops vector being used by changing the VOP_LINK's argument order. The special-case hack doesn't go far enough and breaks the generic bypass routine used in some non-leaf filesystems. Pointed out by Kirk McKusick.
|
#
083c109d |
|
07-Jul-1995 |
David Greenman <dg@FreeBSD.org> |
The generated VCALL always uses the first vp which in the case of /link/ might not be handled by the same FS as the directory (e.g. special device files)...so it must be special-cased. This bug is seen when doing "ln /dev/console /dev/foo" or equivilent and first appeared after I fixed the argument order of VOP_LINK. YUCK! There really needs to be a way of specifying what vp to use in the VCALL; doing this could fix the strategy and bwrite special-cases, too.
|
#
3c4dd356 |
|
02-Aug-1994 |
David Greenman <dg@FreeBSD.org> |
Added $Id$
|
#
df8bae1d |
|
24-May-1994 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
BSD 4.4 Lite Kernel Sources
|