On Mon, Dec 03, 2007 at 06:10:31PM +0100, Jonas Meurer wrote:
On 20/11/2007 René Pavlík wrote:
So I think if the loopback device is allocated by this script it
should be also freed by this script. There is a do_stop() func in the
script (mean in the sourced library). This func tries to do detaching
at the very end:

                # Detach loopback device, if attached
                if [ -f "$src" ] && [ -n "$loopmajor" ] && [
"$loopmajor" = "$major" ]; then
                        losetup -d "/dev/loop$minor" > /dev/null 2>&1
|| true
                fi

but this doesn't work - because of the false condition, especially [
"$loopmajor" = "$major" ].

I cannot imagine any way to get the loopback device from the source file
except something like

        losetup -a | grep -m1 "($src)$" | sed -e 's/:.*//g'

which is a rather unclean solution. David, do you have any better
solution? i guess you do ;-)

I haven't looked in depth at this code (yet), but perhaps "dmsetup deps $dst" could be used?

Example output:

# dmsetup deps cweird
1 dependencies  : (7, 0)

7 is the major number for loop devices...so if we have (7, X) it's a loopback device...the check needs to be done before "do_close" though and the actual "losetup -d" needs to be done after "do_close".

--
David Härdeman



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to