Date: Wed, 15 Nov 2006 08:03:35 -0600 From: Eric Anderson <anderson@centtech.com> To: Shane Adams <adamsch1@yahoo.com> Cc: freebsd-geom@freebsd.org Subject: Re: g_access questions (Out on a limb here) Message-ID: <455B1E37.3000201@centtech.com> In-Reply-To: <20061114230032.45377.qmail@web31801.mail.mud.yahoo.com> References: <20061114230032.45377.qmail@web31801.mail.mud.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/14/06 17:00, Shane Adams wrote: > Hello, > > I have a question regarding g_access. I'm mounting a custom filesytem twice against the same device. The first time I'm mounting it with read/write access, I then mount the same device to a different mount point. After I do this, the first mount starts getting write errors, so somehow the second mount is screwing up access rights to the device. For what its worth, I'm mounting a ram backed mdconfig device. > > I'm not sure if this is a geom related issue, or related to the fact that you cannot mount a device more than twice in vfs? > > Anyway - the first time I mount (R/W) I do: > > g_access(cp, 1,1, 0) > > I then mount the device again as read only to a different mount point with > > g_access(cp,1,0,0) > > The code I used is taken from g_vfs_open with wr flag set depending if write access is required: > > pp = g_dev_getprovider(vp->v_rdev); > if (pp == NULL) > return (ENOENT); > gp = g_new_geomf(&g_vfs_class2, "%s.%s", fsname, pp->name); > cp = g_new_consumer(gp); > g_attach(cp, pp); > error = g_access(cp, 1, wr, 0); > if (error) { > g_wither_geom(gp, ENXIO); > return (error); > } Interesting.. I'm mounting a custom file system also, and I'm doing it much differently: [...] struct vnode *devvp; /* vnode of the mount device */ struct g_consumer *cp; [...] DROP_GIANT(); g_topology_lock(); error = g_vfs_open(devvp, &cp, "tarfs", 0); g_topology_unlock(); PICKUP_GIANT(); VOP_UNLOCK(devvp, 0, td); [...] Eric -- ------------------------------------------------------------------------ Eric Anderson Sr. Systems Administrator Centaur Technology Anything that works is better than anything that doesn't. ------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?455B1E37.3000201>