diff options
author | jeff <jeff@FreeBSD.org> | 2006-03-19 20:14:46 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2006-03-19 20:14:46 +0000 |
commit | 1a9351b430b5dff12778dbdd564057d6120e6e15 (patch) | |
tree | 3231d884410aeec1b7b2311329c4f93a34656e52 | |
parent | 9e7d2c38b6d9382f8c40752138c2aab2add24279 (diff) | |
download | FreeBSD-src-1a9351b430b5dff12778dbdd564057d6120e6e15.zip FreeBSD-src-1a9351b430b5dff12778dbdd564057d6120e6e15.tar.gz |
- Correct an assert in vop_rename_pre. fdvp may be locked if it is either
the target directory or file. This case should fail in the filesystem
anyway and perhaps kern_rename() should catch it.
Sponsored by: Isilon Systems, Inc.
-rw-r--r-- | sys/kern/vfs_subr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index c286f0b..4af051d 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3391,7 +3391,7 @@ vop_rename_pre(void *ap) ASSERT_VI_UNLOCKED(a->a_fdvp, "VOP_RENAME"); /* Check the source (from). */ - if (a->a_tdvp != a->a_fdvp) + if (a->a_tdvp != a->a_fdvp && a->a_tvp != a->a_fdvp) ASSERT_VOP_UNLOCKED(a->a_fdvp, "vop_rename: fdvp locked"); if (a->a_tvp != a->a_fvp) ASSERT_VOP_UNLOCKED(a->a_fvp, "vop_rename: tvp locked"); |