summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-04-11 09:19:08 +0000
committerjeff <jeff@FreeBSD.org>2005-04-11 09:19:08 +0000
commitfbc2ade92cdf004d6552d9ffa87e3eda5696e1ba (patch)
tree0085d8153b01d9c87245b41506f6362e57f343f8
parent3fcd99fa67f11c5add1306f1ee6b3c717d51d3b7 (diff)
downloadFreeBSD-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.c4
-rw-r--r--sys/kern/vfs_syscalls.c4
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);
}
OpenPOWER on IntegriCloud