Can't umount /mnt/dev after calling dd(1) and with /mnt/dev is a bind mount
From: Francis Moreau
Date: Sat Mar 22 2014 - 12:51:21 EST
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/