aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1995-11-18 11:35:05 +0000
committerBruce Evans <bde@FreeBSD.org>1995-11-18 11:35:05 +0000
commit75a85811c1f2fd5ddf558701df525abe7c96037f (patch)
tree5e0d108c4b16da96c5a74dacab914bdcdad7f4c3
parent24f7e33dfd2277aaffa34c5a2c7b6dbe488e8ee0 (diff)
Notes
-rw-r--r--sys/kern/vfs_extattr.c6
-rw-r--r--sys/kern/vfs_syscalls.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index a2c37dfb89f3..31b955afe6ad 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.39 1995/11/13 08:22:21 bde Exp $
+ * $Id: vfs_syscalls.c,v 1.40 1995/11/14 09:19:16 phk Exp $
*/
#include <sys/param.h>
@@ -1880,6 +1880,10 @@ rename(p, uap, retval)
tond.ni_cnd.cn_flags |= WILLBEDIR;
error = namei(&tond);
if (error) {
+ /* Translate error code for rename("dir1", "dir2/."). */
+ if (error == EISDIR && fvp->v_type == VDIR)
+ error = EINVAL;
+
VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd);
vrele(fromnd.ni_dvp);
vrele(fvp);
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index a2c37dfb89f3..31b955afe6ad 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.39 1995/11/13 08:22:21 bde Exp $
+ * $Id: vfs_syscalls.c,v 1.40 1995/11/14 09:19:16 phk Exp $
*/
#include <sys/param.h>
@@ -1880,6 +1880,10 @@ rename(p, uap, retval)
tond.ni_cnd.cn_flags |= WILLBEDIR;
error = namei(&tond);
if (error) {
+ /* Translate error code for rename("dir1", "dir2/."). */
+ if (error == EISDIR && fvp->v_type == VDIR)
+ error = EINVAL;
+
VOP_ABORTOP(fromnd.ni_dvp, &fromnd.ni_cnd);
vrele(fromnd.ni_dvp);
vrele(fvp);