History log of /freebsd/sys/fs/unionfs/union_vnops.c (Results 201 – 225 of 399)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# a03a24c9 15-Aug-1997 KATO Takenori <kato@FreeBSD.org>

Deleted unused code which adjust UN_UNLOCK flag.


# 3dc942bb 14-Aug-1997 KATO Takenori <kato@FreeBSD.org>

Backed out part of previous change. The example of -b mount in
manpage works again.


# f8fc96b5 12-Aug-1997 KATO Takenori <kato@FreeBSD.org>

Fixed vnode corruption by undefined case in union_lookup(). When
uerror == 0 && lerror == EACCES, lowervp == NULLVP and union_allocvp
doesn't find existing union node and new union node is created.

Fixed vnode corruption by undefined case in union_lookup(). When
uerror == 0 && lerror == EACCES, lowervp == NULLVP and union_allocvp
doesn't find existing union node and new union node is created.

Sicne it is dificult to cover all the case, union_lookup always
returns when union_lookup1() returns EACCES.

Submitted by: Naofumi Honda <honda@Kururu.math.sci.hokudai.ac.jp>
Obtained from: NetBSD/pc98

show more ...


Revision tags: release/2.2.2_cvs
# c9bf0111 07-May-1997 KATO Takenori <kato@FreeBSD.org>

1. Added cast and parenthesis in block size calculaion in
union_statfs().
2. staticized union vops.

Submitted by: Doug Rabson <dfr@nlsystems.com>


# 32cfb899 03-May-1997 KATO Takenori <kato@FreeBSD.org>

Fixed panic message in union_lock(): union_link --> union_lock.


# 5f3f68a8 02-May-1997 KATO Takenori <kato@FreeBSD.org>

Access correct union mount point in union_access. Old vnode is saved
in savedvp variable and it is used for the argument of
MOUNTTOUNIONMOUNT(). I didn't realize ap->a_vp is modified before
MOUNTTO

Access correct union mount point in union_access. Old vnode is saved
in savedvp variable and it is used for the argument of
MOUNTTOUNIONMOUNT(). I didn't realize ap->a_vp is modified before
MOUNTTOUNIONMOUNT(), so the change by revision 1.22 is incorrect.

show more ...


# a9320ff3 29-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Revised fix for locking violation when unionfs calls vput with
UN_KLOCK flag.

When UN_KLOCK is set, VOP_UNLOCK should keep uppervp locked and clear
UN_ULOCK flag. To do this, when UN_KLOCK is set,

Revised fix for locking violation when unionfs calls vput with
UN_KLOCK flag.

When UN_KLOCK is set, VOP_UNLOCK should keep uppervp locked and clear
UN_ULOCK flag. To do this, when UN_KLOCK is set, (1) union_unlock
clears UN_ULOCK and does not clear UN_KLOCK, (2) union_lock() does not
access uppervp and does not clear UN_KLOCK, and (3) callers of
vput/VOP_UNLOCK should clear UN_KLOCK. For example, vput becomes:

SETKLOCK(union_node);
vput(vnode);
CLEARKLOCK(union_node);

where SETKLOCK macro sets UN_KLOCK and CLEARKLOCK macro clears
UN_KLOCK.

show more ...


# c4ace785 27-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Undo 1.29.


# a18ac0ff 26-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Do nothing instead of adjusting un_flags when (uppervp is locked) &&
(UN_ULOCK is not set) in union_lock. This condition may indicate
race. DIAGNOSTIC kernel still panic here.


# 928e13b6 26-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Do not clear UN_ULOCK in certain case.

Our vput calls vm_object_deallocate() --> vm_object_terminate(). The
vm_object_terminate() calls vn_lock(), since UN_LOCKED has been
already cleared in union_

Do not clear UN_ULOCK in certain case.

Our vput calls vm_object_deallocate() --> vm_object_terminate(). The
vm_object_terminate() calls vn_lock(), since UN_LOCKED has been
already cleared in union_unlock(). Then, union_lock locks upper vnode
when UN_ULOCK is not set. The upper vnode is not unlocked when
UN_KLOCK is set in union_unlock(), thus, union_lock tries to lock
locked vnode and we get panic.

show more ...


# 18b4c8e2 21-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Dirty change in union_lock(). Sometimes upper vnode is locked without
UN_ULOCK flag. This shows a locking violation but I couldn't find the
reason UN_ULOCK is not set or upper vnode is not unlocked

Dirty change in union_lock(). Sometimes upper vnode is locked without
UN_ULOCK flag. This shows a locking violation but I couldn't find the
reason UN_ULOCK is not set or upper vnode is not unlocked. I added
the code that detect this case and adjust un_flags. DIAGNOSTIC kernel
doesn't adjust un_flags, but just panic here to help debug by kernel
hackers.

show more ...


# 077f31be 21-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Replace VOP_LOCK with vn_lock.


# 93d71a48 16-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Undo previous commit to avoid panic, and fix order of argument of
VOP_LINK(). The reason of strange behavior was wrong order of the
argument, that is, the operation

# ln foo bar

in a union fs tri

Undo previous commit to avoid panic, and fix order of argument of
VOP_LINK(). The reason of strange behavior was wrong order of the
argument, that is, the operation

# ln foo bar

in a union fs tried to do

# ln bar foo

in ufs layer.

Now we can make a link in a union fs.

show more ...


# 9095719e 15-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Quick-hack to avoid `lock against myself' panic. It is not the real
fix!

The ufs_link() assumes that vnode is not unlocked and tries to lock it
in certain case. Because union_link calls VOP_LINK a

Quick-hack to avoid `lock against myself' panic. It is not the real
fix!

The ufs_link() assumes that vnode is not unlocked and tries to lock it
in certain case. Because union_link calls VOP_LINK after locking vnode,
vn_lock in ufs_link causes above panic.

Currently, I don't know the real fix for a locking violation in
union_link, but I think it is important to avoid panic.

A vnode is unlocked before calling VOP_LINK and is locked after it if
the vnode is not union fs. Even though panic went away, the process
that access the union fs in which link was made will hang-up.

Hang-up can be easily reproduced by following operation:

mount -t union a b
cd b
ln foo bar
ls

show more ...


# ee582cdf 14-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Fix locking violation when accessing `..'.
Obtained from: NetBSD


# 3a946335 13-Apr-1997 KATO Takenori <kato@FreeBSD.org>

Access correct union mount point in union_access.


# 363ad700 13-Apr-1997 Poul-Henning Kamp <phk@FreeBSD.org>

The function union_fsync tries to lock overlaying vnode object when
dolock is not set (that is, targetvp == overlaying vnode object).
Current code use FIXUP macro to do this, and never unlocks overla

The function union_fsync tries to lock overlaying vnode object when
dolock is not set (that is, targetvp == overlaying vnode object).
Current code use FIXUP macro to do this, and never unlocks overlaying
vnode object in union_fsync. So, the vnode object will be locked
twice and never unlocked.

PR: 3271
Submitted by: kato

show more ...


Revision tags: release/2.2.1_cvs
# 3ac4d1ef 23-Mar-1997 Bruce Evans <bde@FreeBSD.org>

Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined.
Fixed everything that depended on getting fcntl.h stuff from the wrong
place. Most things don't depend on file.h stuff at all.


Revision tags: release/2.2.0, release/2.1.7_cvs
# 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.


# 9e67ea79 12-Feb-1997 Bruce Evans <bde@FreeBSD.org>

Restored #include of <sys/kernel.h> so that this compiles again.


# 72a5ee14 12-Feb-1997 Mike Pritchard <mpp@FreeBSD.org>

Add function protypes for the new Lite2 unionfs functions.


# 996c772f 10-Feb-1997 John Dyson <dyson@FreeBSD.org>

This is the kernel Lite/2 commit. There are some requisite userland
changes, so don't expect to be able to run the kernel as-is (very well)
without the appropriate Lite/2 userland changes.

The syst

This is the kernel Lite/2 commit. There are some requisite userland
changes, so don't expect to be able to run the kernel as-is (very well)
without the appropriate Lite/2 userland changes.

The system boots and can mount UFS filesystems.

Untested: ext2fs, msdosfs, NFS
Known problems: Incorrect Berkeley ID strings in some files.
Mount_std mounts will not work until the getfsent
library routine is changed.

Reviewed by: various people
Submitted by: Jeffery Hsu <hsu@freebsd.org>

show more ...


Revision tags: release/2.1.6_cvs, release/2.1.6.1
# 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

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.

show more ...


Revision tags: release/2.1.5_cvs, release/2.1.0_cvs
# 9b5e8b3a 03-Dec-1995 Bruce Evans <bde@FreeBSD.org>

Added prototypes.

Removed some unnecessary #includes.


# f57e6547 09-Nov-1995 Bruce Evans <bde@FreeBSD.org>

Introduced a type `vop_t' for vnode operation functions and used
it 1138 times (:-() in casts and a few more times in declarations.
This change is null for the i386.

The type has to be `typedef int

Introduced a type `vop_t' for vnode operation functions and used
it 1138 times (:-() in casts and a few more times in declarations.
This change is null for the i386.

The type has to be `typedef int vop_t(void *)' and not `typedef
int vop_t()' because `gcc -Wstrict-prototypes' warns about the
latter. Since vnode op functions are called with args of different
(struct pointer) types, neither of these function types is any use
for type checking of the arg, so it would be preferable not to use
the complete function type, especially since using the complete
type requires adding 1138 casts to avoid compiler warnings and
another 40+ casts to reverse the function pointer conversions before
calling the functions.

show more ...


12345678910>>...16