Module Name:    src
Committed By:   pooka
Date:           Sun May  3 16:01:44 UTC 2009

Modified Files:
        src/sys/rump/include/rump: rump.h
        src/sys/rump/librump/rumpvfs: rump_vfs.c

Log Message:
Add rump_vfs_getmp(), which returns struct mount for a given path.
(yes, it does not take a reference to the mountpoint)


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/rump/include/rump/rump.h
cvs rdiff -u -r1.18 -r1.19 src/sys/rump/librump/rumpvfs/rump_vfs.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/include/rump/rump.h
diff -u src/sys/rump/include/rump/rump.h:1.14 src/sys/rump/include/rump/rump.h:1.15
--- src/sys/rump/include/rump/rump.h:1.14	Sat May  2 15:20:08 2009
+++ src/sys/rump/include/rump/rump.h	Sun May  3 16:01:44 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump.h,v 1.14 2009/05/02 15:20:08 pooka Exp $	*/
+/*	$NetBSD: rump.h,v 1.15 2009/05/03 16:01:44 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007 Antti Kantee.  All Rights Reserved.
@@ -134,6 +134,7 @@
 int	rump_vfs_fhtovp(struct mount *, struct fid *, struct vnode **);
 int	rump_vfs_vptofh(struct vnode *, struct fid *, size_t *);
 void	rump_vfs_syncwait(struct mount *);
+int	rump_vfs_getmp(const char *, struct mount **);
 
 struct lwp	*rump_newproc_switch(void);
 struct lwp	*rump_setup_curlwp(pid_t, lwpid_t, int);

Index: src/sys/rump/librump/rumpvfs/rump_vfs.c
diff -u src/sys/rump/librump/rumpvfs/rump_vfs.c:1.18 src/sys/rump/librump/rumpvfs/rump_vfs.c:1.19
--- src/sys/rump/librump/rumpvfs/rump_vfs.c:1.18	Fri May  1 11:01:34 2009
+++ src/sys/rump/librump/rumpvfs/rump_vfs.c	Sun May  3 16:01:44 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_vfs.c,v 1.18 2009/05/01 11:01:34 pooka Exp $	*/
+/*	$NetBSD: rump_vfs.c,v 1.19 2009/05/03 16:01:44 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -362,6 +362,23 @@
 	return vfs_getopsbyname(name);
 }
 
+int
+rump_vfs_getmp(const char *path, struct mount **mpp)
+{
+	struct nameidata nd;
+	struct vnode *vp;
+	int rv;
+
+	NDINIT(&nd, LOOKUP, FOLLOW | TRYEMULROOT, UIO_USERSPACE, path);
+	if ((rv = namei(&nd)) != 0)
+		return rv;
+	vp = nd.ni_vp;
+
+	*mpp = vp->v_mount;
+	vrele(vp);
+	return 0;
+}
+
 struct vattr*
 rump_vattr_init(void)
 {

Reply via email to