diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2005-04-13 10:59:09 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2005-04-13 10:59:09 +0000 |
commit | 4585e3ac5acae3560e30d71102156bf7fd0afe52 (patch) | |
tree | d93f4bc84645fcd224218d7e1c19b2f6b18a4c6c /sys/fs/pseudofs | |
parent | 374df05fd3a21fb47247b5f8cc01c8e485d5d9b7 (diff) | |
download | src-4585e3ac5acae3560e30d71102156bf7fd0afe52.tar.gz src-4585e3ac5acae3560e30d71102156bf7fd0afe52.zip |
- 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.
Notes
Notes:
svn path=/head/; revision=145006
Diffstat (limited to 'sys/fs/pseudofs')
-rw-r--r-- | sys/fs/pseudofs/pseudofs_vnops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index 3617cdc0da2e..dfae1ef1fcfa 100644 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -413,6 +413,8 @@ pfs_lookup(struct vop_cachedlookup_args *va) if (error) goto failed; + if (cnp->cn_flags & ISDOTDOT) + vn_lock(vn, LK_EXCLUSIVE|LK_RETRY, cnp->cn_thread); if (cnp->cn_flags & MAKEENTRY) cache_enter(vn, *vpp, cnp); PFS_RETURN (0); |