diff options
author | jeff <jeff@FreeBSD.org> | 2005-04-11 09:19:08 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2005-04-11 09:19:08 +0000 |
commit | fbc2ade92cdf004d6552d9ffa87e3eda5696e1ba (patch) | |
tree | 0085d8153b01d9c87245b41506f6362e57f343f8 | |
parent | 3fcd99fa67f11c5add1306f1ee6b3c717d51d3b7 (diff) | |
download | FreeBSD-src-fbc2ade92cdf004d6552d9ffa87e3eda5696e1ba.zip FreeBSD-src-fbc2ade92cdf004d6552d9ffa87e3eda5696e1ba.tar.gz |
- vput(tvp) before vrele(tdvp) in kern_rename() to avoid lock order issues.
-rw-r--r-- | sys/kern/vfs_extattr.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index 81abc7b..fc04e64 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -3261,12 +3261,12 @@ out: } else { NDFREE(&fromnd, NDF_ONLY_PNBUF); NDFREE(&tond, NDF_ONLY_PNBUF); + if (tvp) + vput(tvp); if (tdvp == tvp) vrele(tdvp); else vput(tdvp); - if (tvp) - vput(tvp); vrele(fromnd.ni_dvp); vrele(fvp); } diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 81abc7b..fc04e64 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -3261,12 +3261,12 @@ out: } else { NDFREE(&fromnd, NDF_ONLY_PNBUF); NDFREE(&tond, NDF_ONLY_PNBUF); + if (tvp) + vput(tvp); if (tdvp == tvp) vrele(tdvp); else vput(tdvp); - if (tvp) - vput(tvp); vrele(fromnd.ni_dvp); vrele(fvp); } |