Fixed size blocks refactor + chown support#46
Open
NorSomething wants to merge 8 commits into
Open
Conversation
This was referenced Apr 2, 2026
Closed
Delta18-Git
requested changes
Jun 22, 2026
Delta18-Git
left a comment
Member
There was a problem hiding this comment.
I think these changes make more sense, pending further discussion with @NorSomething and @Prana-vvb
Merging blocked due to conflict hell
Delta18-Git
approved these changes
Jun 22, 2026
Delta18-Git
left a comment
Member
There was a problem hiding this comment.
Approved pending merge conflict resolution; might be best to push merging to after ART merge
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixed size blocks refactor + chown support #26 #29
Context
The file system now uses block-based allocation (4 KBs each) strategy instead of a contiguous byte slice.
The file system now also supports
chownsupport with UIDs and GIDs.Description
The
write,readandsetattrfunctions offile.gohave been modified to enable use of block-based allocations.The attributes of both the
fileand thedirstruct have been modified to have UID and GID fields in them enable ownership features in them.fuse.AllowOther()has been added tomain.go's mount code so felicitate chown support.Tests
CRUD is tested to be working as intended.

chowntest:chownworking as intended - only sudo users have the permission to change ownership.Additional info
To have functioning
chownsupport, I addedfuse.AllowOther(), this allows any user to access the mount point. With this, anyone can change ownership. This issue is now handled by this validation code indir.go'ssetattr:Here uid=0 is root. So if the user isn'tt root and is trying to chown something that is not in its UID then we throw permission error, otherwise we allow the change in ownership.
Important
As mentioned
fuse.AllowOther()is being used here., but by default fuse will not recognize this and throw an error. To fix this, the user has to edit~/etc/fuse.confwith elevated permissions and un-comment the lineuser_allow_other.