Re: [BUG] remount ro on loopback mount leaves unmountablefilesystem behind

From: Karel Zak
Date: Tue May 13 2008 - 18:56:22 EST


On Tue, May 13, 2008 at 06:23:40AM -0400, Christoph Hellwig wrote:
> On Tue, May 13, 2008 at 06:50:47PM +1000, David Chinner wrote:
> > Same thing, but remounting the loop filesystem readonly
> > before unmounting:
> >
> > $ mount -t xfs /dev/sdb6 /mnt/scratch
> > $ mkdir /mnt/scratch/mnt
> > $ touch /mnt/scratch/img
> > $ mkfs.xfs -f -d file,name=/mnt/scratch/img,size=1g
> > $ mount -t xfs -o loop /mnt/scratch/img /mnt/scratch/mnt
> > $ mount -t xfs -o remount,ro /mnt/scratch/img /mnt/scratch/mnt
> > $ umount /mnt/scratch/mnt
> > $ umount /mnt/scratch
> > umount: /mnt/scratch: device is busy
> > umount: /mnt/scratch: device is busy
>
> This is a problem in mount, no the kernel. Before the remount the
> /etc mtab looks something like this:
>
> /qemu/test.img /mnt xfs rw,loop=/dev/loop0 0 0
>
> and after it looks something like this:
>
> /qemu/test.img /mnt xfs ro 0 0

Yes, that's mount(8) bug. It doesn't read old options from /etc/mtab
when you remount by "mount -o remount <src> <dest>".

> As a workaround do a losetup -d /dev/loop0 after unmounting the
> filesystem.

... or use "mount -o remount <dest>", for example:

mount -t xfs -o remount,ro /mnt/scratch/mnt


Karel

--
Karel Zak <kzak@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/