VOOZH about

URL: https://www.phoronix.com/news/Linux-6.17-Super-Multi-Device

⇱ Linux 6.17 Will Let Multi-Device Filesystems Better Cope With Losing A Disk - Phoronix


👁 Phoronix

Linux 6.17 Will Let Multi-Device Filesystems Better Cope With Losing A Disk

Written by Michael Larabel in Linux Storage on 28 July 2025 at 08:20 PM EDT. 14 Comments
The VFS changes were merged a short time ago to the in-development Linux 6.17 kernel. Among the notable changes there is a patch that will allow file-systems like Btrfs and Bcachefs to better handle losing a disk in their built-in RAID/multi-device capabilities.

A new method is being introduced in Linux 6.17 to allow multi-device file-systems like Btrfs with its native/built-in RAID capabilities to be informed when a block device is removed. Btrfs, for example, can handle surprise device (disk) removal but the existing Linux kernel handling doesn't cope well. File-systems implementing the "shutdown" call can not allow losing a device and end up shutting down the whole file-system.

👁 Multiple disk drives removed


Qu Wenruo of SUSE explains with the queued patch:
"Currently all filesystems which implement super_operations::shutdown() can not afford losing a device.

Thus fs_bdev_mark_dead() will just call the ->shutdown() callback for the involved filesystem.

But it will no longer be the case, as multi-device filesystems like btrfs and bcachefs can handle certain device loss without the need to shutdown the whole filesystem.

To allow those multi-device filesystems to be integrated to use fs_holder_ops:

- Add a new super_operations::remove_bdev() callback

- Try ->remove_bdev() callback first inside fs_bdev_mark_dead() If the callback returned 0, meaning the fs can handling the device loss, then exit without doing anything else.

If there is no such callback or the callback returned non-zero value, continue to shutdown the filesystem as usual.

This means the new remove_bdev() should only do the check on whether the operation can continue, and if so do the fs specific handlings. The shutdown handling should still be handled by the existing ->shutdown() callback.

For all existing filesystems with shutdown callback, there is no change to the code nor behavior.

Btrfs is going to implement both the ->remove_bdev() and ->shutdown() callbacks soon."

That new support was merged today to Linux 6.17 via this pull request.

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.