#
b16f4eec |
| 09-Dec-2006 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
In unionfs_readdir(), prevent a possible NULL dereference.
CID: 1667 Found by: Coverity Prevent (tm)
|
#
3d253c11 |
| 02-Dec-2006 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Add missing includes for <sys/buf.h> and <sys/bio.h>.
|
#
d00947d8 |
| 02-Dec-2006 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Many, many thanks to Masanori OZAWA <ozawa@ongs.co.jp> and Daichi GOTO <daichi@FreeBSD.org> for submitting this major rewrite of unionfs. This rewrite was done to try to solve many of the longstandi
Many, many thanks to Masanori OZAWA <ozawa@ongs.co.jp> and Daichi GOTO <daichi@FreeBSD.org> for submitting this major rewrite of unionfs. This rewrite was done to try to solve many of the longstanding crashing and locking issues in the existing unionfs implementation. This implementation also adds a 'MASQUERADE mode', which allows the user to set different user, group, and file permission modes in the upper layer.
Submitted by: daichi, Masanori OZAWA Reviewed by: rodrigc (modified for minor style issues)
show more ...
|
#
be54a5ee |
| 06-Jul-2006 |
Robert Watson <rwatson@FreeBSD.org> |
Remove unneeded mac.h include.
MFC after: 3 days
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0 |
|
#
86391603 |
| 17-Oct-2005 |
Florent Thoumie <flz@FreeBSD.org> |
- Fix typo.
Approved by: ssouhlal MFC after: 1 week
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
d65736a1 |
| 03-May-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Set the v_object pointer after a successful VOP_OPEN(). This isn't a perfect solution as the lower vm object can change at unpredictable times if our lower vp happens to be on another unionf
- Set the v_object pointer after a successful VOP_OPEN(). This isn't a perfect solution as the lower vm object can change at unpredictable times if our lower vp happens to be on another unionfs, etc.
Submitted by: Oleg Sharoiko <os@rsu.ru>
show more ...
|
#
4585e3ac |
| 13-Apr-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Change all filesystems and vfs_cache to relock the dvp once the child is locked in the ISDOTDOT case. Se vfs_lookup.c r1.79 for details.
Sponsored by: Isilon Systems, Inc.
|
#
9370c333 |
| 04-Apr-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Fix union's assumptions about when the dvp is unlocked. It is only unlocked in the ISDOTDOT case now, not for all !ISLASTCN lookups.
|
#
e32addd4 |
| 28-Mar-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Remove unnecessary LOCKPARENT manipulation.
Sponsored by: Isilon Systems, Inc.
|
#
d9b2d9f7 |
| 24-Mar-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Update vfs_root implementations to match the new prototype. None of these filesystems will support shared locks until they are explicitly modified to do so. Careful review must be done to e
- Update vfs_root implementations to match the new prototype. None of these filesystems will support shared locks until they are explicitly modified to do so. Careful review must be done to ensure that this is safe for each individual filesystem.
Sponsored by: Isilon Systems, Inc.
show more ...
|
#
8da00465 |
| 13-Mar-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- The VI_DOOMED flag now signals the end of a vnode's relationship with the filesystem. Check that rather than VI_XLOCK. - VOP_INACTIVE should no longer drop the vnode lock. - The vnode lock is
- The VI_DOOMED flag now signals the end of a vnode's relationship with the filesystem. Check that rather than VI_XLOCK. - VOP_INACTIVE should no longer drop the vnode lock. - The vnode lock is required around calls to vrecycle() and vgone().
Sponsored by: Isilon Systems, Inc.
show more ...
|
#
7bf4b73d |
| 07-Feb-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Deimplement vop_destroyvobject()
|
#
729fcf7e |
| 25-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Take VOP_GETVOBJECT() out to pasture. We use the direct pointer now.
|
#
69816ea3 |
| 25-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Kill VOP_CREATEVOBJECT(), it is now the responsibility of the filesystem for a given vnode to create a vnode_pager object if one is needed.
|
#
dcff5b14 |
| 25-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't call VOP_CREATEVOBJECT(), it's the responsibility of the filesystem which owns the vnode.
|
#
35764be3 |
| 24-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Kill the VV_OBJBUF and test the v_object for NULL instead.
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
83c64397 |
| 13-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Whitespace in vop_vector{} initializations.
|
#
e39db32a |
| 13-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Ditch vfs_object_create() and make the callers call VOP_CREATEVOBJECT() directly.
|
#
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
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.
show more ...
|
#
8df6bac4 |
| 11-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove the unused credential argument from VOP_FSYNC() and VFS_SYNC().
I'm not sure why a credential was added to these in the first place, it is not used anywhere and it doesn't make much sense:
Remove the unused credential argument from VOP_FSYNC() and VFS_SYNC().
I'm not sure why a credential was added to these in the first place, it is not used anywhere and it doesn't make much sense:
The credentials for syncing a file (ability to write to the file) should be checked at the system call level.
Credentials for syncing one or more filesystems ("none") should be checked at the system call level as well.
If the filesystem implementation needs a particular credential to carry out the syncing it would logically have to the cached mount credential, or a credential cached along with any delayed write data.
Discussed with: rwatson
show more ...
|
#
d167cf6f |
| 06-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
#
aec0fb7b |
| 02-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.
Repla
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)
show more ...
|
#
0731e6df |
| 01-Dec-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Correctly prototype union_write with vop_write_t, not vop_read_t.
|
#
6fde64c7 |
| 01-Dec-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Mechanically change prototypes for vnode operations to use the new typedefs.
|
#
ecbcedb9 |
| 13-Nov-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
VOP_REVOKE() is only ever for VCHR vnodes, so unionfs does not need a vop_revoke() method.
|