Re: block loopback driver possible regression since next-20220211

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

 



On Sat, Feb 19, 2022 at 09:18:58AM -0700, Jens Axboe wrote:
> On 2/18/22 8:10 PM, Luis Chamberlain wrote:
> > I noticed that since next-20220211 losetup fails at something stupid
> > simple:
> > 
> > losetup $LOOPDEV $DISK
> > 
> > I can't see how the changes on drivers/block/loop.c would cause this,
> > I even tried to revert what I thought would be the only commit which
> > would seem to do a functional change "loop: revert "make autoclear
> > operation asynchronous" but that didn't fix it.
> > 
> > I proceeded to bisecting... but I did this on today's linux-next,
> > and well today's linux-next is hosed even at boot. My bisection then
> > was completley inconclusive since linux-next is pure poop today.
> > 
> > Any ideas though?
> > 
> > Fortunately Linus' tree is fine.
> > 
> > I'm quit afraid that we wouldn't have caught this issue. Seems pretty
> > straight forward. It would seem we don't have such a basic thing on
> > blktests, so I'll go add that...
> 
> My guess would be that it's:
> 
> commit fbdee71bb5d8d054e1bdb5af4c540f2cb86fe296
> Author: Christoph Hellwig <hch@xxxxxx>
> Date:   Tue Jan 4 08:16:47 2022 +0100
> 
>     block: deprecate autoloading based on dev_t
> 

Indeed. The issue is that dropping that also does not allow the
association of extra custom higher number loop block nodes created manually
even if you *do* load a respective module before use. That is by design
by the commit, since we're stuffing the nasty old probe logic now under the new
CONFIG_BLOCK_LEGACY_AUTOLOAD. Subtle difference, but same deprecation
effect.

I agree with the approach to stuff all this nasty cruft under
BLOCK_LEGACY_AUTOLOAD however I suspect v5.19 might be too soon to tell if we
can nuke it safely by then though.

I'd go so far as to say that we should sadly make
BLOCK_LEGACY_AUTOLOAD=y for a while before going with an axe to kill it.
I think we have a few hidden gems we'll soon discover might need a bit
more time to adjust.

FWIW below is a simple test, which now fails to explain what I mean with
the above.

root@kdevops ~ # cat loop-high-devs.sh 
#!/bin/bash

NUM="8"
LOOPDEV="/dev/loop${NUM}"

modprobe loop
sleep 2

if [[ ! -e $LOOPDEV ]]; then
	mknod $LOOPDEV b 7 $NUM
fi

losetup -d $LOOPDEV 2>/dev/null

DISK="test_loop_${NUM}.img"
rm -f $DISK
truncate -s 10M $DISK
losetup $LOOPDEV $DISK
if [ $? -eq 0 ]; then
	echo "$LOOPDEV ready"
else
	echo "$LOOPDEV failed"
fi

  Luis



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux