mount: create loop devices with LO_FLAGS_AUTOCLEAR flag
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 16 Mar 2017 15:49:37 +0000 (16:49 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 16 Mar 2017 15:55:47 +0000 (16:55 +0100)
commitab518eea9c41235a3fcde80f3ea99669eaade621
tree4bd1783e343316fa11c2ade135dbe0b0561689a9
parent018804204f41e6e60cec536843275f8fdd4d3620
mount: create loop devices with LO_FLAGS_AUTOCLEAR flag

The "autolooped" mount (mount [-oloop] IMAGE /DIR/DIR)
always creates AUTOCLEARed loopdevs, so that umounting
drops them (and this does not require any code in the
umount userspace).
This happens since circa linux-2.6.25:
commit 96c5865559cee0f9cbc5173f3c949f6ce3525581
Date:    Wed Feb 6 01:36:27 2008 -0800
Subject: Allow auto-destruction of loop devices
IOW: in this case, umount does not have to use -d
to drop the loopdev.

The explicit loop mount (mount /dev/loopN /DIR/DIR)
does not do this. In this case, umount without -d
should not drop loopdev.
Unfortunately, bbox umount currently always implies -d,
this probably needs fixing.

function                                             old     new   delta
set_loop                                             537     597     +60
singlemount                                         1101    1138     +37
losetup_main                                         419     432     +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 110/0)             Total: 110 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/libbb.h
libbb/loop.c
util-linux/losetup.c
util-linux/mount.c