Re: [PATCH] btrfs: scrub: use do_div() for 64-by-32 division

From: Adam Borowski
Date: Sun Apr 09 2017 - 00:08:08 EST


On Sat, Apr 08, 2017 at 11:07:37PM +0200, Adam Borowski wrote:
> Unbreaks ARM and possibly other 32-bit architectures.

Turns out those "other 32-bit architectures" happen to include i386.

A modular build:

ERROR: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!

With the patch, i386 builds fine.

> Tested on amd64 where all is fine, and on arm (Odroid-U2) where scrub
> sometimes works, but, like most operations, randomly dies with some badness
> that doesn't look related: io_schedule, kunmap_high. That badness wasn't
> there in 4.11-rc5, needs investigating, but since it's not connected to our
> issue at hand, I consider this patch sort-of tested.

Looks like current -next is pretty broken: while amd64 is ok, on an i386 box
(non-NX Pentium 4) it hangs very early during boot, way before filesystem
modules would be loaded. Qemu boots but has random hangs.

So it looks like it's compile only for now...

--
âââââââ Meow!
âââââââ
âââââââ Collisions shmolisions, let's see them find a collision or second
âââââââ preimage for double rot13!