Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Nov 2008 10:47:07 +0100
From:      =?ISO-8859-1?Q?Javier_Mart=EDn_Rueda?= <jmrueda@diatel.upm.es>
To:        freebsd-geom@freebsd.org
Subject:   Re: RW and RO semantic and unable to umount a partition?
Message-ID:  <4916B19B.7000803@diatel.upm.es>
In-Reply-To: <20081107192150.GA3007@troutmask.apl.washington.edu>
References:  <20081107192150.GA3007@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Steve Kargl escribió:
> So, I may have done something in the category of "Don't do that!".
>
> On node n19, I export /dev/ad4s1e and combine it into a mirror
> on node n18 with n18's /dev/ad4s1e.  On n18 I have /dev/mirror/data,
> and I've successfully mounted /dev/mirror/data:
>
> n18:root[32] mount /dev/mirror/data /data
>
> Now, I tried the the following:
>
> On n18, I created /etc/gg.exports
>
> n18:root[33] cat /etc/gg.exports
> 192.168.0.17 RW /dev/mirror/data
> n18:root[34] ggated -v
>
> On node n17 (yes, a third system).  I do
>
> n17:root[08] ggatec create -o rw 192.168.0.18 /dev/mirror/data
>
> The above command does not create /dev/ggate0.  So, I tried 
>
> ggatec create -o ro 192.168.0.18 /dev/mirror/data
>
> This created the /dev/ggate0 device.  Now, the interesting
> part
>
> n17:root[10] mount /dev/ggate0 /mnt
> n17:root[11] ls /mnt
> .snap/  fcurra/ kargl/
> n17:root[12] umount /mnt
> umount: unmount of /mnt failed: Operation not permitted
> n17:root[13] umount -f /mnt
> umount: unmount of /mnt failed: Operation not permitted
>
> Three questions.  Why is RW not permitted?  Why does umount
> fail?  How the heck to I force umount or the unmounting of /mnt?
>
>
>   
RW is not permitted because gmirror has already opened /dev/ad4s1e for 
RW. The rule is this: you can open a geom provider (disks are also geom 
providers) RW only once at a time, but you can open a geom provider RO 
as many times as you want simultaneously or even combine it with one 
(and only one) RW open.

I'm not 100% sure about the umount, but I imagine that, as you mounted 
it read-write, when you unmount it, it attempts to update the superblock 
and ggate denies the write because the device is read-only.

With regards to forcing the umount, have you tried umount -f /mnt?

Finally, even if you manage somehow to open a filesystem RW from two 
different systems, don't do that. The UFS filesystem is designed so that 
the disk store is managed by a single kernel, and if you modify it from 
two or more different kernels at the same time, you will definitely get 
corruption and panics.






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4916B19B.7000803>