naota / linux

Linux kernel source tree
Other
3 stars 1 forks source link

Device add with different zone size partially succeeded, with warnings #49

Open kdave opened 3 years ago

kdave commented 3 years ago

The nullb device setup:

No  Name      Device                   Size    Zone size  On
 0  nullb0    /dev/nullb0             2048M         128M   1
 1  nullb1    /dev/nullb1             1024M         256M   1

The device nullb0 has been created as single/single and a git checkout workload runs there, no problems. After some time, I've tried to add another device, notice different zone size, but a multiple of the first one. The command

$ btrfs device add /dev/nullb1 /mnt
$ echo $?
0

succeeded without warnings on console, but

# btrfs device usage /mnt
/dev/nullb0, ID: 1
   Device size:             2.00GiB
   Device slack:              0.00B
   Data,single:           512.00MiB
   Metadata,single:       128.00MiB
   System,single:         128.00MiB
   Unallocated:             1.25GiB

does not show it as part of the filesystem, so it failed. There are several messages in the syslog:

[35381.581185] BTRFS info (device nullb0): reclaiming chunk 939524096 with 0% used 0% unusable
[35381.592683] BTRFS info (device nullb0): relocating block group 939524096 flags data
[35382.389707] BTRFS info (device nullb0): found 92 extents, stage: move data extents
[35382.468521] blk_update_request: I/O error, dev nullb1, sector 131072 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
[35382.471162] blk_update_request: I/O error, dev nullb1, sector 2093056 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
[35382.479590] Buffer I/O error on dev nullb1, logical block 16384, lost async page write
[35382.490645] Buffer I/O error on dev nullb1, logical block 261632, lost async page write
[35382.507123] blk_update_request: I/O error, dev nullb1, sector 2093064 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.507138] Buffer I/O error on dev nullb1, logical block 261633, lost async page write
[35382.507180] Buffer I/O error on dev nullb1, logical block 261634, lost async page write
[35382.507209] Buffer I/O error on dev nullb1, logical block 261635, lost async page write
[35382.507238] Buffer I/O error on dev nullb1, logical block 261636, lost async page write
[35382.507277] Buffer I/O error on dev nullb1, logical block 261637, lost async page write
[35382.507315] Buffer I/O error on dev nullb1, logical block 261638, lost async page write
[35382.507353] Buffer I/O error on dev nullb1, logical block 261639, lost async page write
[35382.507392] Buffer I/O error on dev nullb1, logical block 261640, lost async page write
[35382.585820] blk_update_request: I/O error, dev nullb1, sector 2093312 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.586378] blk_update_request: I/O error, dev nullb1, sector 2093560 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.608819] blk_update_request: I/O error, dev nullb1, sector 2093808 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.620436] blk_update_request: I/O error, dev nullb1, sector 2094056 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.620847] blk_update_request: I/O error, dev nullb1, sector 2094304 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.643332] blk_update_request: I/O error, dev nullb1, sector 2094552 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.643748] blk_update_request: I/O error, dev nullb1, sector 2094800 op 0x1:(WRITE) flags 0x4800 phys_seg 31 prio class 0
[35382.650984] BTRFS info (device nullb0): found 92 extents, stage: update data pointers

Messages with nullb0 are fine and expected, the 'Buffer error' are related to the device addition.