Module Name: src Committed By: pooka Date: Mon Nov 30 10:11:09 UTC 2009
Modified Files: src/sys/rump/librump/rumpvfs: rumpfs.c Log Message: support lookup of pathname component "." To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/rump/librump/rumpvfs/rumpfs.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/rump/librump/rumpvfs/rumpfs.c diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.31 src/sys/rump/librump/rumpvfs/rumpfs.c:1.32 --- src/sys/rump/librump/rumpvfs/rumpfs.c:1.31 Fri Nov 27 16:43:51 2009 +++ src/sys/rump/librump/rumpvfs/rumpfs.c Mon Nov 30 10:11:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpfs.c,v 1.31 2009/11/27 16:43:51 pooka Exp $ */ +/* $NetBSD: rumpfs.c,v 1.32 2009/11/30 10:11:09 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.31 2009/11/27 16:43:51 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.32 2009/11/30 10:11:09 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -434,8 +434,13 @@ return EOPNOTSUPP; if (!((cnp->cn_flags & ISDOTDOT) == 0)) return EOPNOTSUPP; - if (!(cnp->cn_namelen != 0 && cnp->cn_pnbuf[0] != '.')) - return EOPNOTSUPP; + + /* check for dot, return directly if the case */ + if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { + vref(dvp); + *vpp = dvp; + goto out; + } /* check if we are returning a faked block device */ if (dvp == rootvnode && cnp->cn_nameiop == LOOKUP) { @@ -485,6 +490,7 @@ return rv; } + out: return 0; }