Re: util-linux-2.22 regression on umount with loop and /etc/mtab real file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 18, 2012 at 07:50:29AM +0200, g.esp@xxxxxxx wrote:
> The loop is cleaned on umount with 2.21.2
> With 2.22, unmounting /tmp/foo_fs no more remove the loop
> 
> [chroot-i486] root:/$ mount --version
> mount from util-linux 2.22 (libmount 2.22.0: debug)
> [chroot-i486] root:/$ losetup -a
> [chroot-i486] root:/$ mount -oloop /tmp/foo_fs /tmp/bar_dir
> [chroot-i486] root:/$ umount /tmp/foo_fs
> [chroot-i486] root:/$ losetup -a
> /dev/loop0: [2051]:387175 (/tmp/foo_fs)
> 
> The loop remain.

Kernel version? I guess something old... :-)

Since kernel 2.6.37 we use autoclear flag:

  $ cat /sys/block/loop0/loop/autoclear
  1

if the flags is enabled (should be always by mount(8)) then the loop
device is automatically detached by kernel after successful umount(2).
It means that we don't have to store any extra information in
userspace or do any magic around loopdevs in umount(8) command.


I found a bug in libmount umount code, it does not check for the
option "loop" in mtab -- this bug is invisible on systems where
autoclear flags is usable. Fixed. Try the code from upstream tree:

  git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git
  cd util-linux
  ./autogen.sh
  ./configure
  make mount umount

Note that you can use LIBMOUNT_DEBUG=0xffff env.variable to get more
information from libmount.

    Karel

-- 
 Karel Zak  <kzak@xxxxxxxxxx>
 http://karelzak.blogspot.com
--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux