Slate 7 - Btrfs support is broken since 4.7.2

Hello! I just got Slate 7 and was hoping to use it as a backup server to receive Btrfs snapshots to external HDD. However it seems like there's some issue with Btrfs' implementation since FW version 4.7.2.
Everything worked with out of the box on 4.7.1 but broke after upgrade to 4.7.3. I also checked 4.7.2 and this version is broken too.

You can find full command list to reproduce the problem below, but basically the problem boils down to the kernel module not been able to load:

On 4.7.2 and 4.7.3:

root@GL-BE3600:~# opkg install btrfs-progs

root@GL-BE3600:~# lsmod | grep btrfs
root@GL-BE3600:~# insmod btrfs
failed to insert /lib/modules/5.4.213/btrfs.ko
root@GL-BE3600:~# lsmod | grep btrfs

root@GL-BE3600:~# dmesg | tail -4
[ 2166.066041] btrfs: Unknown symbol __page_file_index (err -2)
[ 2166.067053] btrfs: Unknown symbol add_swap_extent (err -2)
[ 2596.513307] btrfs: Unknown symbol __page_file_index (err -2)
[ 2596.514047] btrfs: Unknown symbol add_swap_extent (err -2)

On 4.7.1:

root@GL-BE3600:~# lsmod | grep btrfs
btrfs                 991232  0
libcrc32c              16384  5 btrfs,act_csum,openvswitch,nf_nat,nf_conntrack
raid6_pq              102400  1 btrfs
xor                    16384  1 btrfs
zstd_compress         176128  2 zstd,btrfs
zstd_decompress        49152  2 zstd,btrfs

root@GL-BE3600:~# dmesg
<...>
[ 2241.804930] kmodloader: loading kernel modules from /etc/modules.d/*
[ 2241.880220] Key type encrypted registered
[ 2241.937444] Btrfs loaded, crc32c=crc32c-generic
[ 2241.945148] kmodloader: done loading kernel modules from /etc/modules.d/*
<...>

Full command list to reproduce the problem:

root@GL-BE3600:~# opkg update
root@GL-BE3600:~# opkg install btrfs-progs wipefs
root@GL-BE3600:~# dd if=/dev/zero of=test bs=1M count=200
root@GL-BE3600:~# losetup -f test
root@GL-BE3600:~# losetup -a
/dev/loop0: [0020]:1169 (/root/test)
root@GL-BE3600:~# mkfs.btrfs /dev/loop0
btrfs-progs v6.5.1
See https://btrfs.readthedocs.io for more information.

NOTE: several default settings have changed in version 5.15, please make sure
      this does not affect your deployments:
      - DUP for metadata (-m dup)
      - enabled no-holes (-O no-holes)
      - enabled free-space-tree (-R free-space-tree)

Label:              (null)
UUID:               3bc1ff61-0e52-4189-bfce-26b54720851f
Node size:          16384
Sector size:        4096
Filesystem size:    200.00MiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              32.00MiB
  System:           DUP               8.00MiB
SSD detected:       yes
Zoned device:       no
Incompat features:  extref, skinny-metadata, no-holes, free-space-tree
Runtime features:   free-space-tree
Checksum:           crc32c
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   200.00MiB  /dev/loop0

WARNING: failed to open /dev/btrfs-control, skipping device registration: No such file or directory

root@GL-BE3600:~# mount -t btrfs /dev/loop0 /mnt
mount: mounting /dev/loop0 on /mnt failed: No such device

root@GL-BE3600:~# ls -l /dev/loop0
brw-------    1 root     root        7,   0 Jul  2 21:42 /dev/loop0
root@GL-BE3600:~# wipefs /dev/loop0
DEVICE OFFSET  TYPE  UUID                                 LABEL
loop0  0x10040 btrfs 3bc1ff61-0e52-4189-bfce-26b54720851f

root@GL-BE3600:~# lsmod | grep btrfs
root@GL-BE3600:~# insmod btrfs
failed to insert /lib/modules/5.4.213/btrfs.ko
root@GL-BE3600:~# lsmod | grep btrfs

root@GL-BE3600:~# dmesg | tail -4
[ 2166.066041] btrfs: Unknown symbol __page_file_index (err -2)
[ 2166.067053] btrfs: Unknown symbol add_swap_extent (err -2)
[ 2596.513307] btrfs: Unknown symbol __page_file_index (err -2)
[ 2596.514047] btrfs: Unknown symbol add_swap_extent (err -2)

root@GL-BE3600:~# losetup -d /dev/loop0
root@GL-BE3600:~# rm test

Tested firmware versions:

Version: 4.7.1
Firmware Type: release1
Update Time: 2025-03-07 09:22:05 (UTC+00:00) 
OpenWrt Version: OpenWrt 23.05-SNAPSHOT r0-3601c2a49
Kernel Version: 5.4.213
Version: 4.7.2
Firmware Type: release4
Update Time: 2025-05-29 03:27:03 (UTC+00:00) 
OpenWrt Version: OpenWrt 23.05-SNAPSHOT r0-3601c2a49
Kernel Version: 5.4.213
Version: 4.7.3
Firmware Type: release1
Update Time: 2025-06-03 05:22:02 (UTC+00:00) 
OpenWrt Version: OpenWrt 23.05-SNAPSHOT r0-3601c2a49
Kernel Version: 5.4.213

Will try to reproduce the issue in Slate 7 with v4.7.3, thanks for the troubleshooting.

1 Like