Re: make-bcache bug?

Kai Krakow
2017-05-14T21:28:28Z

Am Sun, 14 May 2017 13:19:40 -0700
schrieb Marc MERLIN <marc@merlins.org>:

> On Sun, May 14, 2017 at 10:00:55PM +0200, Kai Krakow wrote:
> > Am Sun, 14 May 2017 10:58:40 -0700
> > schrieb Marc MERLIN <marc@merlins.org>:
> >
> > > bcache-tools (1.0.8-2+b1)
> > >
> > > gargamel:~# make-bcache -C /dev/sde2
> > > Already a bcache device on /dev/sde2, overwrite with --wipe-bcache
> > > gargamel:~# make-bcache --wipe-bcache -C /dev/sde2
> > > Device /dev/sde2 already has a non-bcache superblock, remove it
> > > using wipefs and wipefs -a
> > >
> > > /dev/sde2 is an old bcache I'm reformatting.
> > > The first message is correct
> > > The 2nd one is not "/dev/sde2 already has a non-bcache superblock"
> > >
> > > Clearly it can't have a bcache and not a bcache superblock,
> > > right?
> >
> > I don't think that each filesystem puts their superblocks in the
> > same position. Plus, there are usually backup superblocks across
> > the area.
> >
> > So you may well see both warnings and both are correct.
> >
> > Use wipefs, there seems to be an orphan superblock.
>
> Doesn't wipefs -a clear just 16 bytes or so?
> I did it and it fixed my problem, but this block device was a bcache
> before, and of course on top of that bcache I then added a filesystem.
>
> Let's test this.
> 1) I wipefs'ed it
> 2) I made a new cache device on top
> 3) I did not put a filesystem or use it, because registration is
> broken and still rquires a reboot
> bcache: register_cache() error opening sde2: cache_alloc(): -ENOMEM
> bcache: register_bcache() error opening /dev/sde2: (null)
>
> 4) recreating a new cache on top fo the unused cache, fails again.
> Basically the superblock detection is not working right and detects
> bcache as a non bcache superblock.
>
> gargamel:/mnt/btrfs_pool2# make-bcache -C /dev/sde2
> Already a bcache device on /dev/sde2, overwrite with --wipe-bcache
> gargamel:/mnt/btrfs_pool2# make-bcache --wipe-bcache -C /dev/sde2
> Device /dev/sde2 already has a non-bcache superblock, remove it using
> wipefs and wipefs -a

I had done this previously, too, and had no such message. But I had to
use wipefs anyway because otherwise udev came and triggered the device
for reasons I couldn't really follow.

If you get udev not to interfere with such actions, you usually also do
not need to reboot because unregistration and registration works.

But you can also easily get stuck when you decompose the bcache device
in the wrong way. It will simply stay registered then and cannot be
unregistered because the device is still in use. In that situation I
wouldn't wipefs the device.

--
Regards,
Kai

Replies to list-only preferred.