Skip to content

libblkid: Add scoutfs filesystem. #3596

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

Merged
merged 1 commit into from
Jun 2, 2025

Conversation

aversecat
Copy link
Contributor

The scoutfs filesystem is maintained out-of-tree, but current enough that we want to submit it for inclusion in libblkid - there's a few users out there that would benefit from being able to have lsblk aid in diagnosing and identifying.

For more information about scoutfs, visit the github page here:
https://github.com/versity/scoutfs

@aversecat
Copy link
Contributor Author

Update: Fixed unknown __le32 and friends in various of the CI builds.

@aversecat
Copy link
Contributor Author

Update: Fixed printf specifiers.

@karelzak
Copy link
Collaborator

Hmm... we have a bad experience when the filesystem is detected only by a short magic string. It's better when it's possible to check something more from the header or superblock. For example, check some numbers for limits, etc. The ideal solution is a checksum, because it ensures we read the correct superblock.

@aversecat
Copy link
Contributor Author

@karelzak yep, I changed it to validate the checksum. There are further checks we could to to validate the structure but those are going to be much more complicated than this.

@aversecat
Copy link
Contributor Author

Update: Several changes:

  • separate scoutfs_data and scoutfs_meta types, 2 probe functions
  • added CRC checking of the SB (only)
  • added wiper declaration
  • added 2 test images for low-probe test.
  • added fsblocksize and block_size setters, since this is relevant (scoutfs meta uses 64k blocks, data 4k).

@aversecat aversecat requested a review from t-8ch May 28, 2025 19:28
@t-8ch
Copy link
Member

t-8ch commented May 28, 2025

Also is there some superblock indicator that distinguishes different devices inside a single filesystem? For example datadevice 1 of filesystem with UUID=.... If so it would be useful to also report that. Similar to UUID_SUB and LABEL_SUB in other probers.

@aversecat
Copy link
Contributor Author

Also is there some superblock indicator that distinguishes different devices inside a single filesystem? For example datadevice 1 of filesystem with UUID=.... If so it would be useful to also report that. Similar to UUID_SUB and LABEL_SUB in other probers.

No. scoutfs always has a 1:1 pairing of meta/data devices. There is no further zoning or subdivision, either.

@aversecat aversecat force-pushed the auke/scoutfs branch 2 times, most recently from 0c1855a to eb0b56f Compare May 29, 2025 00:53
@aversecat
Copy link
Contributor Author

One additional update with hints, some spacing/whitespace/misc fixes, and removed double reading of the sb, and minsz (setting it to 1gb).

@aversecat
Copy link
Contributor Author

Looks like CI can't fetch resources atm.

The scoutfs filesystem is maintained out-of-tree, but current enough
that we want to submit it for inclusion in libblkid - there's a few
users out there that would benefit from being able to have lsblk aid in
diagnosing and identifying.

For more information about scoutfs, visit the github page here:
   https://github.com/versity/scoutfs

Test images are provided for both data and meta devices. These were
taken from validation samples.

The wiper is set to only wipe a minute part of the filesystem -
basically only the superblock. This is adequately destructive.

Signed-off-by: Auke Kok <auke.kok@versity.com>
@aversecat
Copy link
Contributor Author

Update: rebased, few last requested changes. Test images updated to match minsz.

@karelzak karelzak merged commit f544f59 into util-linux:master Jun 2, 2025
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants