Module Name: src Committed By: pooka Date: Wed Jul 14 14:07:37 UTC 2010
Modified Files: src/sys/fs/puffs: puffs_vnops.c Log Message: RENAME lookup semantics say return EISDIR if dvp = *vpp for the last component .... obviously(!!) To generate a diff of this commit: cvs rdiff -u -r1.146 -r1.147 src/sys/fs/puffs/puffs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/fs/puffs/puffs_vnops.c diff -u src/sys/fs/puffs/puffs_vnops.c:1.146 src/sys/fs/puffs/puffs_vnops.c:1.147 --- src/sys/fs/puffs/puffs_vnops.c:1.146 Thu Jun 24 13:03:10 2010 +++ src/sys/fs/puffs/puffs_vnops.c Wed Jul 14 14:07:37 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_vnops.c,v 1.146 2010/06/24 13:03:10 hannken Exp $ */ +/* $NetBSD: puffs_vnops.c,v 1.147 2010/07/14 14:07:37 pooka Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.146 2010/06/24 13:03:10 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.147 2010/07/14 14:07:37 pooka Exp $"); #include <sys/param.h> #include <sys/buf.h> @@ -500,6 +500,10 @@ } if (isdot) { + /* deal with rename lookup semantics */ + if (cnp->cn_nameiop == RENAME && (cnp->cn_flags & ISLASTCN)) + return EISDIR; + vp = ap->a_dvp; vref(vp); *ap->a_vpp = vp;