*** The following error occurred when write files: [382606.972617] ------------[ cut here ]------------ [382606.972620] BTRFS: Transaction aborted (error -27) [382606.972676] WARNING: CPU: 7 PID: 5411 at fs/btrfs/block-group.c:1909 btrfs_create_pending_block_groups+0x1d4/0x200 [btrfs] [382606.972677] Modules linked in: fuse coretemp intel_rapl_msr intel_rapl_common isst_if_common i2c_dev mlx5_ib ib_uverbs ib_core skx_edac ipmi_ssif ipv6 nfit x86_pkg_temp_thermal kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel rapl intel_cstate mlx5_core mlxfw pci_hyperv_intf ast drm_vram_helper ses ttm drm_kms_helper enclosure drm btrfs agpgart ixgbe i2c_algo_bit fb_sys_fops libphy mei_me syscopyarea zstd_compress mdio sysfillrect joydev ioatdma zstd_decompress sysimgblt i2c_i801 lpc_ich mei dca evdev ipmi_si ipmi_devintf ipmi_msghandler acpi_power_meter button loop megaraid_sas ext4 mbcache jbd2 hid_multitouch hid_microsoft hid_lenovo hid_logitech_hidpp hid_logitech_dj hid_logitech hid_cherry hid_asus asus_wmi battery sparse_keymap rfkill wmi video hwmon hid_generic i2c_hid i2c_core usbhid hid uhci_hcd ohci_pci ehci_pci ohci_hcd ehci_hcd xhci_pci xhci_hcd [382606.972706] CPU: 7 PID: 5411 Comm: rsync Not tainted 5.4.80 #1 [382606.972707] Hardware name: Inspur AS13000G5-M60/YZMB-01900-103, BIOS 3.1.9 08/21/2020 [382606.972723] RIP: 0010:btrfs_create_pending_block_groups+0x1d4/0x200 [btrfs] [382606.972725] Code: 8b 45 50 f0 48 0f ba a8 30 11 00 00 02 72 1d 41 83 fc fb 74 17 41 83 fc e2 74 11 44 89 e6 48 c7 c7 70 87 a2 c0 e8 bc f6 6c c1 <0f> 0b 44 89 e1 ba 75 07 00 00 48 c7 c6 a0 8d a1 c0 48 89 ef e8 39 [382606.972726] RSP: 0018:ffff9fb34eb03658 EFLAGS: 00010286 [382606.972727] RAX: 0000000000000000 RBX: ffff8b6448414520 RCX: 0000000000000006 [382606.972727] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff8b783fbd6580 [382606.972728] RBP: ffff8b6038100c98 R08: 000000000002da9c R09: 000000000000077c [382606.972729] R10: ffff8b702a76f120 R11: 000000000000077c R12: 00000000ffffffe5 [382606.972729] R13: ffff8b6038100cf0 R14: ffff8b7822d6e000 R15: ffff8b9836b20000 [382606.972730] FS: 00007f5220879700(0000) GS:ffff8b783fbc0000(0000) knlGS:0000000000000000 [382606.972731] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [382606.972732] CR2: 0000564ccddc4000 CR3: 00000037a8d42002 CR4: 00000000007606e0 [382606.972732] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [382606.972733] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [382606.972733] PKRU: 55555554 [382606.972734] Call Trace: [382606.972753] btrfs_chunk_alloc+0x228/0x2c0 [btrfs] [382606.972764] find_free_extent+0xc8e/0xff0 [btrfs] [382606.972776] btrfs_reserve_extent+0xa5/0x190 [btrfs] [382606.972788] btrfs_alloc_tree_block+0xb6/0x4f0 [btrfs] [382606.972794] ? __remove_hrtimer+0x35/0x70 [382606.972804] alloc_tree_block_no_bg_flush+0x43/0x60 [btrfs] [382606.972815] __btrfs_cow_block+0x126/0x570 [btrfs] [382606.972825] btrfs_cow_block+0xfc/0x1f0 [btrfs] [382606.972835] btrfs_search_slot+0x437/0x960 [btrfs] [382606.972845] ? btrfs_leaf_free_space+0x49/0x90 [btrfs] [382606.972855] btrfs_insert_empty_items+0x67/0xc0 [btrfs] [382606.972865] insert_with_overflow+0x44/0x100 [btrfs] [382606.972876] btrfs_insert_dir_item+0xc6/0x270 [btrfs] [382606.972890] btrfs_add_link+0xc7/0x470 [btrfs] [382606.972903] btrfs_create+0x1b1/0x1f0 [btrfs] [382606.972908] path_openat+0x12f1/0x13c0 [382606.972911] do_filp_open+0x99/0x110 [382606.972915] ? __dentry_kill+0x112/0x160 [382606.972919] ? __check_object_size+0x172/0x1b0 [382606.972920] ? __alloc_fd+0x3d/0x170 [382606.972922] ? do_sys_open+0x12a/0x220 [382606.972924] do_sys_open+0x12a/0x220 [382606.972927] do_syscall_64+0x4c/0x170 [382606.972931] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [382606.972933] RIP: 0033:0x7f521fda5bf0 [382606.972934] Code: 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 83 3d 99 1b 2d 00 00 75 10 b8 02 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 de df 01 00 48 89 04 24 [382606.972935] RSP: 002b:00007fff9ae4af68 EFLAGS: 00000246 ORIG_RAX: 0000000000000002 [382606.972936] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f521fda5bf0 [382606.972936] RDX: 0000000000000180 RSI: 00000000000000c2 RDI: 00007fff9ae4d1d0 [382606.972937] RBP: 000000000003a2f8 R08: 0000000000000039 R09: 0000000000000000 [382606.972937] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff9ae4d209 [382606.972938] R13: 8421084210842109 R14: 00000000000000c2 R15: 00007f521fe42940 [382606.972939] ---[ end trace 51450a00be89b62e ]--- [382606.972941] BTRFS: error (device sdc) in btrfs_create_pending_block_groups:1909: errno=-27 unknown [382606.973400] BTRFS info (device sdc): forced readonly [382608.191227] BTRFS warning (device sdc): Skipping commit of aborted transaction. [382608.197211] BTRFS info (device sdc): delayed_refs has NO entry *** A btrfs check shows no error: # btrfs check /dev/sdc Opening filesystem to check... Checking filesystem on /dev/sdc UUID: 1fd69cb6-5c6a-4f30-b2aa-9e8c1e11a3f0 [1/7] checking root items [2/7] checking extents [3/7] checking free space cache [4/7] checking fs roots [5/7] checking only csums items (without verifying data) [6/7] checking root refs [7/7] checking quota groups skipped (not enabled on this FS) found 204585718599680 bytes used, no error found total csum bytes: 199537301156 total tree bytes: 208911122432 total fs tree bytes: 170835968 total extent tree bytes: 1066713088 btree space waste bytes: 5795278077 file data blocks allocated: 204376807477248 referenced 204376807477248 *** However, mounting the filesystem read-write and running btrfs scrub triggers the same error, and the scrub aborts with filesystem forced read-only: [16486.566499] BTRFS info (device sdc): scrub: started on devid 1 [16486.791715] BTRFS info (device sdc): scrub: started on devid 6 [16486.791730] BTRFS info (device sdc): scrub: started on devid 7 [16487.019927] BTRFS info (device sdc): scrub: started on devid 8 [16487.241911] BTRFS info (device sdc): scrub: started on devid 9 [16487.470014] BTRFS info (device sdc): scrub: started on devid 10 [16487.700170] BTRFS info (device sdc): scrub: started on devid 3 [16487.700185] BTRFS info (device sdc): scrub: started on devid 4 [16487.741638] BTRFS info (device sdc): scrub: started on devid 5 [16487.775879] BTRFS info (device sdc): scrub: started on devid 2 [16487.800986] BTRFS info (device sdc): scrub: started on devid 11 [16488.026192] BTRFS info (device sdc): scrub: started on devid 12 [16488.196768] BTRFS info (device sdc): scrub: started on devid 13 [16488.430757] BTRFS info (device sdc): scrub: started on devid 14 [16488.448529] BTRFS info (device sdc): scrub: started on devid 15 [16488.448541] BTRFS info (device sdc): scrub: started on devid 16 [16488.456989] BTRFS info (device sdc): scrub: started on devid 17 [16488.665341] BTRFS info (device sdc): scrub: started on devid 18 [16488.700696] BTRFS info (device sdc): scrub: started on devid 19 [16488.731566] BTRFS info (device sdc): scrub: started on devid 20 [16488.755640] BTRFS info (device sdc): scrub: started on devid 21 [16488.844078] BTRFS info (device sdc): scrub: started on devid 22 [16488.869788] BTRFS info (device sdc): scrub: started on devid 23 [16489.096730] BTRFS info (device sdc): scrub: started on devid 24 [16489.194654] BTRFS info (device sdc): scrub: started on devid 25 [16489.230010] BTRFS info (device sdc): scrub: started on devid 26 [16489.276815] BTRFS info (device sdc): scrub: started on devid 27 [16489.282140] BTRFS info (device sdc): scrub: started on devid 28 [16489.290036] BTRFS info (device sdc): scrub: started on devid 29 [16489.316006] BTRFS info (device sdc): scrub: started on devid 30 [16489.356053] BTRFS info (device sdc): scrub: started on devid 31 [16489.381773] BTRFS info (device sdc): scrub: started on devid 32 [16489.432681] BTRFS info (device sdc): scrub: started on devid 33 [16489.453858] BTRFS info (device sdc): scrub: started on devid 34 [16489.484655] BTRFS info (device sdc): scrub: started on devid 35 [16489.499716] BTRFS info (device sdc): scrub: started on devid 36 [16489.528706] BTRFS info (device sdc): scrub: started on devid 37 [16489.563081] BTRFS info (device sdc): scrub: started on devid 38 [16489.786751] BTRFS info (device sdc): scrub: started on devid 39 [16489.786760] BTRFS info (device sdc): scrub: started on devid 40 [16489.838573] BTRFS info (device sdc): scrub: started on devid 41 [16489.872703] BTRFS info (device sdc): scrub: started on devid 42 [16489.908914] BTRFS info (device sdc): scrub: started on devid 43 [16489.943560] BTRFS info (device sdc): scrub: started on devid 44 [16490.013383] BTRFS info (device sdc): scrub: started on devid 45 [16490.238302] BTRFS info (device sdc): scrub: started on devid 46 [16490.466952] BTRFS info (device sdc): scrub: started on devid 47 [16490.480929] BTRFS info (device sdc): scrub: started on devid 48 [16490.705736] BTRFS info (device sdc): scrub: started on devid 49 [16490.745208] BTRFS info (device sdc): scrub: started on devid 50 [16490.778085] BTRFS info (device sdc): scrub: started on devid 51 [16490.828206] BTRFS info (device sdc): scrub: started on devid 52 [16490.856726] BTRFS info (device sdc): scrub: started on devid 53 [16490.868866] BTRFS info (device sdc): scrub: started on devid 54 [16490.910975] BTRFS info (device sdc): scrub: started on devid 55 [16490.948032] BTRFS info (device sdc): scrub: started on devid 56 [16490.978097] BTRFS info (device sdc): scrub: started on devid 57 [16491.017945] BTRFS info (device sdc): scrub: started on devid 58 [16491.025234] BTRFS info (device sdc): scrub: started on devid 59 [16491.078808] BTRFS info (device sdc): scrub: started on devid 60 [16519.794829] ------------[ cut here ]------------ [16519.794833] BTRFS: Transaction aborted (error -27) [16519.794951] WARNING: CPU: 6 PID: 2642 at fs/btrfs/block-group.c:1909 btrfs_create_pending_block_groups+0x1d4/0x200 [btrfs] [16519.794953] Modules linked in: fuse coretemp intel_rapl_msr intel_rapl_common isst_if_common i2c_dev mlx5_ib skx_edac nfit x86_pkg_temp_thermal kvm_intel kvm ib_uverbs ib_core irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel rapl ipv6 ipmi_ssif intel_cstate mlx5_core mlxfw pci_hyperv_intf ast drm_vram_helper ttm drm_kms_helper drm ses agpgart btrfs enclosure ixgbe i2c_algo_bit fb_sys_fops libphy mei_me syscopyarea mdio ioatdma zstd_compress sysfillrect joydev zstd_decompress sysimgblt i2c_i801 lpc_ich mei dca evdev ipmi_si ipmi_devintf ipmi_msghandler acpi_power_meter button loop megaraid_sas ext4 mbcache jbd2 hid_multitouch hid_microsoft hid_lenovo hid_logitech_hidpp hid_logitech_dj hid_logitech hid_cherry hid_asus asus_wmi battery sparse_keymap rfkill wmi video hwmon hid_generic i2c_hid i2c_core usbhid hid uhci_hcd ohci_pci ehci_pci ohci_hcd ehci_hcd xhci_pci xhci_hcd [16519.795019] CPU: 6 PID: 2642 Comm: btrfs Not tainted 5.4.80 #1 [16519.795021] Hardware name: Inspur AS13000G5-M60/YZMB-01900-103, BIOS 3.1.9 08/21/2020 [16519.795067] RIP: 0010:btrfs_create_pending_block_groups+0x1d4/0x200 [btrfs] [16519.795071] Code: 8b 45 50 f0 48 0f ba a8 30 11 00 00 02 72 1d 41 83 fc fb 74 17 41 83 fc e2 74 11 44 89 e6 48 c7 c7 70 07 bb c0 e8 bc 76 54 ce <0f> 0b 44 89 e1 ba 75 07 00 00 48 c7 c6 a0 0d ba c0 48 89 ef e8 39 [16519.795074] RSP: 0018:ffffb89e4cc0fb20 EFLAGS: 00010282 [16519.795077] RAX: 0000000000000000 RBX: ffff8a276f7bd120 RCX: 0000000000000006 [16519.795078] RDX: 0000000000000007 RSI: 0000000000000092 RDI: ffff8a277fb96580 [16519.795080] RBP: ffff8a277f291f70 R08: 000000000002e2cc R09: 00000000000007a6 [16519.795082] R10: 0000000000000001 R11: 00000000000007a6 R12: 00000000ffffffe5 [16519.795083] R13: ffff8a277f291fc8 R14: ffff8a2776e90000 R15: ffff8a2747d4f000 [16519.795086] FS: 00007fc096269700(0000) GS:ffff8a277fb80000(0000) knlGS:0000000000000000 [16519.795088] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [16519.795090] CR2: 00007fc0990502a0 CR3: 0000001fa4e76006 CR4: 00000000007606e0 [16519.795092] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [16519.795093] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [16519.795095] PKRU: 55555554 [16519.795096] Call Trace: [16519.795142] __btrfs_end_transaction+0x58/0x1c0 [btrfs] [16519.795185] btrfs_inc_block_group_ro+0xbd/0x150 [btrfs] [16519.795230] scrub_enumerate_chunks+0x1d5/0x570 [btrfs] [16519.795240] ? try_to_wake_up+0x520/0x5b0 [16519.795283] btrfs_scrub_dev+0x2e3/0x650 [btrfs] [16519.795291] ? __kmalloc_track_caller+0x57/0x280 [16519.795296] ? __check_object_size+0x172/0x1b0 [16519.795340] btrfs_ioctl+0x178c/0x2dd0 [btrfs] [16519.795351] ? __switch_to_asm+0x40/0x70 [16519.795355] ? __switch_to_asm+0x34/0x70 [16519.795358] ? __switch_to_asm+0x40/0x70 [16519.795361] ? __switch_to_asm+0x34/0x70 [16519.795369] do_vfs_ioctl+0xa1/0x620 [16519.795377] ? create_task_io_context+0x95/0xf0 [16519.795381] ? get_task_io_context+0x41/0x80 [16519.795386] ksys_ioctl+0x66/0x70 [16519.795391] __x64_sys_ioctl+0x16/0x20 [16519.795397] do_syscall_64+0x4c/0x170 [16519.795402] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [16519.795406] RIP: 0033:0x7fc098b6b9e7 [16519.795410] Code: 00 00 00 48 8b 05 b1 64 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 81 64 2c 00 f7 d8 64 89 01 48 [16519.795412] RSP: 002b:00007fc096268d68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [16519.795415] RAX: ffffffffffffffda RBX: 00000000007ae580 RCX: 00007fc098b6b9e7 [16519.795417] RDX: 00000000007ae580 RSI: 00000000c400941b RDI: 0000000000000003 [16519.795418] RBP: 0000000000000000 R08: 00007fc096269700 R09: 0000000000000000 [16519.795420] R10: 00007fc096269700 R11: 0000000000000246 R12: 0000000000000000 [16519.795421] R13: 00007ffd2ded878f R14: 00007fc096269700 R15: 0000000000000000 [16519.795425] ---[ end trace 5bec0a8e7d328f43 ]--- [16519.795430] BTRFS: error (device sdc) in btrfs_create_pending_block_groups:1909: errno=-27 unknown [16519.796920] BTRFS info (device sdc): forced readonly [16519.797239] BTRFS warning (device sdc): Skipping commit of aborted transaction. [16519.797245] BTRFS: error (device sdc) in cleanup_transaction:1832: errno=-27 unknown [16519.797446] BTRFS warning (device sdc): failed setting block group ro: -30 [16519.799709] BTRFS info (device sdc): scrub: not finished on devid 13 with status: -30 [16519.801611] BTRFS info (device sdc): scrub: not finished on devid 6 with status: -125 [16519.822921] BTRFS info (device sdc): scrub: not finished on devid 34 with status: -125 [16519.830431] BTRFS info (device sdc): scrub: not finished on devid 56 with status: -125 [16519.839946] BTRFS info (device sdc): scrub: not finished on devid 25 with status: -125 [16519.875562] BTRFS info (device sdc): scrub: not finished on devid 48 with status: -125 [16519.878894] BTRFS info (device sdc): scrub: not finished on devid 58 with status: -125 [16519.892284] BTRFS info (device sdc): scrub: not finished on devid 17 with status: -125 [16519.896221] BTRFS info (device sdc): scrub: not finished on devid 35 with status: -125 [16519.898573] BTRFS info (device sdc): scrub: not finished on devid 2 with status: -125 [16519.898885] BTRFS info (device sdc): scrub: not finished on devid 54 with status: -125 [16519.909258] BTRFS info (device sdc): scrub: not finished on devid 24 with status: -125 [16519.909522] BTRFS info (device sdc): scrub: not finished on devid 4 with status: -125 [16519.918839] BTRFS info (device sdc): scrub: not finished on devid 31 with status: -125 [16519.919567] BTRFS info (device sdc): scrub: not finished on devid 60 with status: -125 [16519.919595] BTRFS info (device sdc): scrub: not finished on devid 10 with status: -125 [16519.921518] BTRFS info (device sdc): scrub: not finished on devid 22 with status: -125 [16519.922294] BTRFS info (device sdc): scrub: not finished on devid 7 with status: -125 [16519.923704] BTRFS info (device sdc): scrub: not finished on devid 53 with status: -125 [16519.929702] BTRFS info (device sdc): scrub: not finished on devid 9 with status: -125 [16519.931179] BTRFS info (device sdc): scrub: not finished on devid 59 with status: -125 [16519.931277] BTRFS info (device sdc): scrub: not finished on devid 37 with status: -125 [16519.932547] BTRFS info (device sdc): scrub: not finished on devid 11 with status: -125 [16519.933496] BTRFS info (device sdc): scrub: not finished on devid 16 with status: -125 [16519.933872] BTRFS info (device sdc): scrub: not finished on devid 51 with status: -125 [16519.933927] BTRFS info (device sdc): scrub: not finished on devid 21 with status: -125 [16519.935514] BTRFS info (device sdc): scrub: not finished on devid 52 with status: -125 [16519.938768] BTRFS info (device sdc): scrub: not finished on devid 46 with status: -125 [16519.939499] BTRFS info (device sdc): scrub: not finished on devid 43 with status: -125 [16519.939822] BTRFS info (device sdc): scrub: not finished on devid 29 with status: -125 [16519.940269] BTRFS info (device sdc): scrub: not finished on devid 33 with status: -125 [16519.940346] BTRFS info (device sdc): scrub: not finished on devid 14 with status: -125 [16519.941315] BTRFS info (device sdc): scrub: not finished on devid 57 with status: -125 [16519.941346] BTRFS info (device sdc): scrub: not finished on devid 32 with status: -125 [16519.941636] BTRFS info (device sdc): scrub: not finished on devid 47 with status: -125 [16519.941828] BTRFS info (device sdc): scrub: not finished on devid 3 with status: -125 [16519.941920] BTRFS info (device sdc): scrub: not finished on devid 39 with status: -125 [16519.942036] BTRFS info (device sdc): scrub: not finished on devid 8 with status: -125 [16519.942446] BTRFS info (device sdc): scrub: not finished on devid 50 with status: -125 [16519.943584] BTRFS info (device sdc): scrub: not finished on devid 36 with status: -125 [16519.945863] BTRFS info (device sdc): scrub: not finished on devid 15 with status: -125 [16519.946731] BTRFS info (device sdc): scrub: not finished on devid 49 with status: -125 [16519.947675] BTRFS info (device sdc): scrub: not finished on devid 27 with status: -125 [16519.947939] BTRFS info (device sdc): scrub: not finished on devid 18 with status: -125 [16519.948010] BTRFS info (device sdc): scrub: not finished on devid 20 with status: -125 [16519.948331] BTRFS info (device sdc): scrub: not finished on devid 1 with status: -125 [16519.948787] BTRFS info (device sdc): scrub: not finished on devid 45 with status: -125 [16519.950018] BTRFS info (device sdc): scrub: not finished on devid 23 with status: -125 [16519.950555] BTRFS info (device sdc): scrub: not finished on devid 28 with status: -125 [16519.950932] BTRFS info (device sdc): scrub: not finished on devid 26 with status: -125 [16519.953639] BTRFS info (device sdc): scrub: not finished on devid 44 with status: -125 [16519.953956] BTRFS info (device sdc): scrub: not finished on devid 42 with status: -125 [16519.956154] BTRFS info (device sdc): scrub: not finished on devid 41 with status: -125 [16519.958777] BTRFS info (device sdc): scrub: not finished on devid 30 with status: -125 [16519.959204] BTRFS info (device sdc): scrub: not finished on devid 19 with status: -125 [16519.959648] BTRFS info (device sdc): scrub: not finished on devid 38 with status: -125 [16519.961986] BTRFS info (device sdc): scrub: not finished on devid 12 with status: -125 [16519.962834] BTRFS info (device sdc): scrub: not finished on devid 40 with status: -125 [16519.970538] BTRFS info (device sdc): scrub: not finished on devid 55 with status: -125 [16519.980011] BTRFS info (device sdc): scrub: not finished on devid 5 with status: -125 *** The filesystem also appears to be very slow. When mounted read-write, dd if=/dev/zero of=/mount-point/test.dat bs=1M count=10k conv=fdatasync yields 68MB/s only. The same command on a similarly filled btrfs on another machine with exactly the same hardware configuration gives 800~900MB/s. *** Neither dmesg nor smartctl showed any error in the member disks.
This bug not showing up in Linux 5.10.1. Seems that some critical bugfix was not backported to the LTS Linux 5.4. (Well I think it's critical enough not being able to write to nor to scrub a btrfs that's about 26% full, even though no data loss occurred.)
I think it's been fixed by https://git.kernel.org/linus/b12de52896c0e8213f , first in 5.5 and not backported to 5.4. There seem to be no dependencies so I'll send a backport.
Patch queued up for 5.4.107.