sys_umount() returns EBUSY when doing: sh -c "mount /dev/sdc1 /mnt; umount /mnt"

From: Francis Moreau
Date: Sat Mar 13 2010 - 03:56:32 EST


Hello

I've some shell scripts which try to find out the filesystem hosted by
a block device.

They basically do this:

mount /dev/sdc1 /mnt
fs=$(stat -f -c %T $mount_point)
umount /mnt

It happens to work but since an unknown upgrade (kernel, libs or tools
upgrade), umount(8) returns -EBUSY.

I found that it's actually the sys_umount() which return -EBUSY.

So the question, is this expected or is this a regression ?

If it's expected then which operation should I add between the
mount(8) and umount(8) to make the mount operation completely finish
(inside the kernel) so the next umount won't return -EBUSY ?

Oh I'm currently using the kernel shipped with F12: 2.6.32.9-67.fc12.x86_64

Thanks
--
Francis
--
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/