diff options
| author | Bruce Evans <bde@FreeBSD.org> | 1995-11-18 11:35:05 +0000 |
|---|---|---|
| committer | Bruce Evans <bde@FreeBSD.org> | 1995-11-18 11:35:05 +0000 |
| commit | 75a85811c1f2fd5ddf558701df525abe7c96037f (patch) | |
| tree | 5e0d108c4b16da96c5a74dacab914bdcdad7f4c3 | |
| parent | 24f7e33dfd2277aaffa34c5a2c7b6dbe488e8ee0 (diff) | |
Notes
| -rw-r--r-- | sys/kern/vfs_extattr.c | 6 | ||||
| -rw-r--r-- | sys/kern/vfs_syscalls.c | 6 |
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); |
