libblockdev
libblockdev copied to clipboard
fs: basic bcachefs support
I was interested in learning a bit more about libblockdev/udisks so I've looked into adding bcachefs support to libblockdev (although it is not merged yet in the kernel). So far it only supports mkfs/get_info, some notable things which are missing are:
- [ ] tests
- [ ] get_fs_size support and similar functions.
- [ ] set/get label
- [ ] repair
- [ ] resize
- [ ] set uuid (if possible)
Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.
FYI: I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.
Can one of the admins verify this patch?
Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.
Important question for this is whether people will want to use bcachefs as "simple" filesystem. We originally didn't have support for btrfs as a simple single device filesystem, just as a multi-device volume manager and we added it as a filesystem because people were asking for it. I am not sure if this will be the same for bcachefs as well. I am not against adding it, but I'd like to avoid supporting something for years that might not be used as much. But it looks simple enough for now.
I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.
I guess we could realistically expect that bcachefs will be available in next kernel release, right? So it might be available in Fedora 40. My only concern right now is stability of the userspace tools "API", we can expect changes in the output and that's always tricky to support.
Like btrfs this likely needs a specialized plugin for volume's, adding two devices together and other interesting features. I don't for see myself writing support for that. But I would be happy to implement enough to get basic support on the same level as other filesystems.
Important question for this is whether people will want to use bcachefs as "simple" filesystem. We originally didn't have support for btrfs as a simple single device filesystem, just as a multi-device volume manager and we added it as a filesystem because people were asking for it. I am not sure if this will be the same for bcachefs as well. I am not against adding it, but I'd like to avoid supporting something for years that might not be used as much. But it looks simple enough for now.
Half supporting something might be worse then lacking support. As I most likely won't be pushing this a lot forward, mostly did it as a learning exercise. So I'll close it for now, anyone who is deeply invested in bcachefs can pick up this PR and push it to the finishing line.
I can understand that the lack of bcachefs support in mainline and userspace tooling in CI blocks this PR.
I guess we could realistically expect that bcachefs will be available in next kernel release, right? So it might be available in Fedora 40. My only concern right now is stability of the userspace tools "API", we can expect changes in the output and that's always tricky to support.
It's now in linux-next, I have no idea when it ends up in mainline. It also depends on Fedora packaging bcachefs-tools which has some Rust so that might not be super trivial.
Now it's the time: https://www.phoronix.com/news/Bcachefs-Merged-Linux-6.7
bcachefs-tools
Fedora review: https://bugzilla.redhat.com/show_bug.cgi?id=2247350
6.7 be in rawhide soon and bcachefs-tools is packaged. I'll rebase this PR somewhere this week