Re: Can't umount /mnt/dev after calling dd(1) and with /mnt/dev is a bind mount

From: Francis Moreau
Date: Sun Mar 30 2014 - 03:53:03 EST


up

On 03/22/2014 05:52 PM, Francis Moreau wrote:
> Hello,
>
> I'm posting here because it might be a behaviour related to the kernel
> internals that I can't explain from my user point of view :)
>
> Basically I'm doing this:
>
> mount -o bind /dev/ /mnt/dev &&
> chroot /mnt dd bs=440 conv=notrunc count=1 if=gptmbr.bin of=/dev/loop0
> umount /mnt/dev
>
> but umount gives the following error: "umount: /mnt/dev: target is busy"
>
> I tried to see if any processes were still using a file in dev with
> fuser(1) but there weren't. Futhermore inserting a call to fuser(1)
> right before umount fixed the issue, so it really seems a timing issue.
>
> stracing umount showed that umount failed here:
> umount("/mnt/dev", 0) = -1 EBUSY (Device or resource busy)
>
> I replaced the bind mount of /dev by:
> mount -t devtmpfs none /mnt/dev
> and it worked.
>
> Could anybody tell me what I'm doing wrong ?
>
> Thanks.
>

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