Module Name: src Committed By: pooka Date: Thu Nov 11 15:05:54 UTC 2010
Modified Files: src/sys/rump/librump/rumpvfs: rumpfs.c Log Message: be friends with genfs To generate a diff of this commit: cvs rdiff -u -r1.67 -r1.68 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.67 src/sys/rump/librump/rumpvfs/rumpfs.c:1.68 --- src/sys/rump/librump/rumpvfs/rumpfs.c:1.67 Thu Nov 11 14:46:55 2010 +++ src/sys/rump/librump/rumpvfs/rumpfs.c Thu Nov 11 15:05:54 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpfs.c,v 1.67 2010/11/11 14:46:55 pooka Exp $ */ +/* $NetBSD: rumpfs.c,v 1.68 2010/11/11 15:05:54 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.67 2010/11/11 14:46:55 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.68 2010/11/11 15:05:54 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -49,6 +49,7 @@ #include <miscfs/fifofs/fifo.h> #include <miscfs/specfs/specdev.h> #include <miscfs/genfs/genfs.h> +#include <miscfs/genfs/genfs_node.h> #include <rump/rumpuser.h> @@ -138,7 +139,17 @@ LIST_ENTRY(rumpfs_dent) rd_entries; }; +struct genfs_ops rumpfs_genfsops = { + .gop_size = genfs_size, + .gop_write = genfs_gop_write, + + /* optional */ + .gop_alloc = NULL, + .gop_markupdate = NULL, +}; + struct rumpfs_node { + struct genfs_node rn_gn; struct vattr rn_va; struct vnode *rn_vp; char *rn_hostpath; @@ -521,6 +532,7 @@ } vp->v_data = rn; + genfs_node_init(vp, &rumpfs_genfsops); vn_lock(vp, LK_RETRY | LK_EXCLUSIVE); mutex_enter(&reclock); rn->rn_vp = vp; @@ -1142,6 +1154,7 @@ mutex_enter(&reclock); rn->rn_vp = NULL; mutex_exit(&reclock); + genfs_node_destroy(vp); vp->v_data = NULL; if (rn->rn_flags & RUMPNODE_CANRECLAIM) {