From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: Paul Graff <pj.world@gmx.com>, linux-btrfs@vger.kernel.org
Subject: Re: Stuck subvolume removal:
Date: Sat, 15 Nov 2025 06:25:29 +1030 [thread overview]
Message-ID: <0ed6fdf0-842a-4641-90e4-5239b5049e4b@gmx.com> (raw)
In-Reply-To: <01f8b560-fb57-4861-8382-141c39655478@gmx.com>
在 2025/11/15 06:08, Paul Graff 写道:
>
>
> On 11/13/25 4:54 PM, Qu Wenruo wrote:
>>
>>
>> 在 2025/11/14 09:10, Paul Graff 写道:
>>> Hi, currently there is a dropped subvolume error when running a full
>>> balance on a single SSD.
>>>
>>> |:~> sudo btrfs balance start / WARNING: Full balance without filters
>>> requested. This operation is very intense and takes potentially very
>>> long. It is recommended to use the balance filters to narrow down the
>>> scope of balance. Use 'btrfs balance start --full-balance' option to
>>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C
>>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any
>>> filters. ERROR: error during balancing '/': Structure needs cleaning
>>> There may be more info in syslog - try dmesg | tail hightower-
>>> i5-6600k:~> dmesg | tail [38576.407681] [ T29728] BTRFS info (device
>>> dm-2): found 37170 extents, stage: update data pointers
>>> [38584.873805] [ T29728] BTRFS info (device dm-2): relocating block
>>> group 64891125760 flags data [38607.693519] [ T29728] BTRFS info
>>> (device dm-2): found 33194 extents, stage: move data extents
>>> [38641.574032] [ T29728] BTRFS info (device dm-2): found 33194
>>> extents, stage: update data pointers [38649.812477] [ T29728] BTRFS
>>> info (device dm-2): relocating block group 62710087680 flags data
>>> [38662.710999] [ T29728] BTRFS info (device dm-2): found 43884
>>> extents, stage: move data extents [38696.292982] [ T29728] BTRFS info
>>> (device dm-2): found 43884 extents, stage: update data pointers
>>> [38708.587669] [ T29728] BTRFS info (device dm-2): relocating block
>>> group 60294168576 flags metadata|dup [38714.889735] [ T29728] BTRFS
>>> error (device dm-2): cannot relocate partially dropped subvolume 490,
>>> drop progress key (853588 108 0) [38723.736887] [ T29728] BTRFS info
>>> (device dm-2): balance: ended with status: -117 hightower-i5-6600k:~>|
>>
>> The format is a mess.
> My apologies for the disastrous output format above.
>> Please provide a proper formatted dmesg instead.
>
> :~> sudo dmesg | tail
>
> [sudo] password for root:
>
> [44928.672213] [ T96240] BTRFS info (device dm-2): found 55680 extents,
> stage: update data pointers
>
> [44937.810972] [ T96240] BTRFS info (device dm-2): found 4 extents,
> stage: update data pointers
>
> [44938.590658] [ T96240] BTRFS info (device dm-2): relocating block
> group 60294168576 flags metadata|dup
>
> [44945.516661] [ T96240] BTRFS error (device dm-2): cannot relocate
> partially dropped subvolume 490, drop progress key (853588 108 0)
>
> [44955.995468] [ T96240] BTRFS info (device dm-2): balance: ended with
> status: -117
>
> :~>
>
>
>>
>> Along with the kernel version.
> Most current openSUSE Rescue system CD used for btrfs check, uname -a >
> 6.17.7-1
>>
>> The relocation is rejected because there is a half-dropped subvolume,
>> which is not that common.
>> It maybe a problem with the fs that there are some ghost subvolumes
>> that are never dropped.
>>
>> There used to be kernel bug that can lead to such ghost subvolumes,
>> IIRC the latest btrfs check can detect it.
>>
>> So please also provide the output of "btrfs check --readonly" of the
>> unmounted fs.
>
> :~ # btrfs check --readonly --progress /dev/mapper/system-root
>
> Opening filesystem to check...
>
> Checking filesystem on /dev/mapper/system-root
>
> UUID: 605560ad-fe93-4d09-8760-df0725b43ee1
>
> [1/8] checking log skipped (none written)
>
> [1/7] checking root items (0:00:14 elapsed, 5328460 items checked)
>
> [2/7] checking extents (0:01:01 elapsed, 984830 items checked)
>
> [3/7] checking free space cache (0:00:12 elapsed, 471 items checked)
>
> [4/7] checking fs roots (0:04:32 elapsed, 910644 items checked)
>
> [5/7] checking csums (without verifying data) (0:00:12 elapsed, 895024
> items checked)
>
> fs tree 490 missing orphan item (0:00:00 elapsed, 94 items checked)
So indeed your fs has a half dropped ghost subvolume, most likely caused
by some older kernels.
Unfortunately btrfs-progs doesn't have the ability to repair it yet,
I'll craft a branch of btrfs-progs with the repair ability soon.
Meanwhile please prepare an environment to compile btrfs-progs.
Thanks,
Qu
>
> [6/7] checking root refs (0:00:01 elapsed, 94 items checked)
>
> ERROR: errors found in root refs
>
> found 496776130741 bytes used, error(s) found
>
> total csum bytes: 465839608
>
> total tree bytes: 16133832704
>
> total fs tree bytes: 14983905280
>
> total extent tree bytes: 624771072
>
> btree space waste bytes: 3613129770
>
> file data blocks allocated: 1062495817728
>
> referenced 976540409856
>
> :~ #
>
>
>>
>> Thanks,
>> Qu
>>
> -Greatest Hopes
> Paul
>>>
>>> After passing,
>>>
>>> |:~> sudo btrfs subvolume sync / [sudo] password for root: hightower-
>>> i5-6600k:~> |
>>>
>>> the command returned to prompt very, very quickly.
>>>
>>> A second balance attempt results with the following output:
>>>
>>> |:~> sudo btrfs balance start / WARNING: Full balance without filters
>>> requested. This operation is very intense and takes potentially very
>>> long. It is recommended to use the balance filters to narrow down the
>>> scope of balance. Use 'btrfs balance start --full-balance' option to
>>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C
>>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any
>>> filters. ERROR: error during balancing '/': Structure needs cleaning
>>> There may be more info in syslog - try dmesg | tail hightower-
>>> i5-6600k:~> |
>>>
>>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device dm-2):
>>> found 16 extents, stage: update data pointers [93690.667290]
>>> [ T69656] BTRFS info (device dm-2): relocating block group
>>> 1495819878400 flags data [93703.323923] [ T69656] BTRFS info (device
>>> dm-2): found 33 extents, stage: move data extents [93705.575991]
>>> [ T69656] BTRFS info (device dm-2): found 33 extents, stage: update
>>> data pointers [93706.769453] [ T69656] BTRFS info (device dm-2):
>>> relocating block group 1494746136576 flags data [93725.570642]
>>> [ T69656] BTRFS info (device dm-2): found 39 extents, stage: move
>>> data extents [93727.449779] [ T69656] BTRFS info (device dm-2): found
>>> 39 extents, stage: update data pointers [93728.465650] [ T69656]
>>> BTRFS info (device dm-2): relocating block group 60294168576 flags
>>> metadata|dup [93736.722689] [ T69656] BTRFS error (device dm-2):
>>> cannot relocate partially dropped subvolume 490, drop progress key
>>> (853588 108 0) [93750.594559] [ T69656] BTRFS info (device dm-2):
>>> balance: ended with status: -117 hightower- i5-6600k:~> |
>>>
>>> Please see the following referenced, prior posting for stuck
>>> subvolume removal similarity. https://lore.kernel.org/linux-
>>> btrfs/9f936d59- d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>>
>>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>>> |
>>>
>>> What are your thoughts on this?
>>>
>>>
>>>
>>>
>>>
>>
>
next prev parent reply other threads:[~2025-11-14 19:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-13 22:40 Stuck subvolume removal: Paul Graff
2025-11-13 22:54 ` Qu Wenruo
2025-11-14 19:38 ` Paul Graff
2025-11-14 19:55 ` Qu Wenruo [this message]
2026-01-28 8:42 ` Paul Graff
2026-01-28 8:49 ` Qu Wenruo
2026-03-01 15:47 ` Paul Graff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0ed6fdf0-842a-4641-90e4-5239b5049e4b@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=pj.world@gmx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox