Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fs: basic bcachefs support #959

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

jelly
Copy link
Contributor

@jelly jelly commented Sep 25, 2023

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.

@StorageGhoul
Copy link

Can one of the admins verify this patch?

@vojtechtrefny
Copy link
Member

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.

@jelly
Copy link
Contributor Author

jelly commented Sep 26, 2023

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.

@jelly jelly closed this Sep 26, 2023
@tbzatek
Copy link
Member

tbzatek commented Nov 1, 2023

@tbzatek tbzatek reopened this Nov 1, 2023
Copy link
Member

@tbzatek tbzatek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very first code reading revealed no obvious issues.

@tbzatek tbzatek added this to the libblockdev 3.1 milestone Nov 1, 2023
@jelly
Copy link
Contributor Author

jelly commented Jan 15, 2024

6.7 be in rawhide soon and bcachefs-tools is packaged. I'll rebase this PR somewhere this week

This adds mkfs/get_info support for Bcachefs.
@tbzatek
Copy link
Member

tbzatek commented Oct 2, 2024

Another user request: https://gitlab.gnome.org/GNOME/gnome-disk-utility/-/issues/344

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants