g_access questions (Out on a limb here)
Eric Anderson
anderson at centtech.com
Wed Nov 15 18:57:49 UTC 2006
On 11/15/06 12:09, Shane Adams wrote:
> Thanks for the reply,
>
> Can you mount the same device/file more than once at a time?
>
> Shane
Yes, which screws up my testing sometimes. :)
Eric
> ----- Original Message ----
> From: Eric Anderson <anderson at centtech.com>
> To: Shane Adams <adamsch1 at yahoo.com>
> Cc: freebsd-geom at freebsd.org
> Sent: Wednesday, November 15, 2006 6:03:35 AM
> Subject: Re: g_access questions (Out on a limb here)
>
> 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.
------------------------------------------------------------------------
More information about the freebsd-geom
mailing list