From: Paul Graff <pj.world@gmx.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>, linux-btrfs@vger.kernel.org
Subject: Re: Stuck subvolume removal:
Date: Wed, 28 Jan 2026 02:42:43 -0600 [thread overview]
Message-ID: <121b0011-8076-4a0b-baff-384b6ec62986@gmx.com> (raw)
In-Reply-To: <0ed6fdf0-842a-4641-90e4-5239b5049e4b@gmx.com>
On 11/14/25 1:55 PM, Qu Wenruo wrote:
>
>
> 在 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
Hi, I would like to ask if there is a solution to the "dropped ghost
subvolume" the filesystem on machine here exhibits as of yet?
-Thanks
Paul Graff
>
>>
>> [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:[~2026-01-28 8:42 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
2026-01-28 8:42 ` Paul Graff [this message]
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=121b0011-8076-4a0b-baff-384b6ec62986@gmx.com \
--to=pj.world@gmx.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo.btrfs@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